变更一下代码文目录名,防止qt编译中文路径出错。
@@ -0,0 +1,202 @@
 | 
			
		||||
<?xml version="1.0" encoding="utf-8"?>
 | 
			
		||||
<Project DefaultTargets="Build" ToolsVersion="16.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
 | 
			
		||||
  <ItemGroup Label="ProjectConfigurations">
 | 
			
		||||
    <ProjectConfiguration Include="Debug|x64">
 | 
			
		||||
      <Configuration>Debug</Configuration>
 | 
			
		||||
      <Platform>x64</Platform>
 | 
			
		||||
    </ProjectConfiguration>
 | 
			
		||||
    <ProjectConfiguration Include="Release|x64">
 | 
			
		||||
      <Configuration>Release</Configuration>
 | 
			
		||||
      <Platform>x64</Platform>
 | 
			
		||||
    </ProjectConfiguration>
 | 
			
		||||
  </ItemGroup>
 | 
			
		||||
  <ItemGroup>
 | 
			
		||||
    <Image Include="..\..\..\source\car_dealer_util.ico" />
 | 
			
		||||
  </ItemGroup>
 | 
			
		||||
  <ItemGroup>
 | 
			
		||||
    <ResourceCompile Include="..\..\..\source\car_dealer_util.rc" />
 | 
			
		||||
  </ItemGroup>
 | 
			
		||||
  <ItemGroup>
 | 
			
		||||
    <ClCompile Include="..\..\..\source\data\AppParameters\AppParameters.cpp" />
 | 
			
		||||
    <ClCompile Include="..\..\..\source\Data\DataManipulation\Excel\ExportToExcel.cpp" />
 | 
			
		||||
    <ClCompile Include="..\..\..\source\Data\DataManipulation\Excel\LoadFromExcel.cpp" />
 | 
			
		||||
    <ClCompile Include="..\..\..\source\data\DataManipulation\FromExcelToOracle\FromExcelToOracle.cpp" />
 | 
			
		||||
    <ClCompile Include="..\..\..\source\Data\DataManipulation\oracle\ImportToOracle.cpp" />
 | 
			
		||||
    <ClCompile Include="..\..\..\source\Data\Datastructure\CarDealerAchievement\CarDealerAchievement.cpp" />
 | 
			
		||||
    <ClCompile Include="..\..\..\source\Data\Datastructure\CarDealerScheme\CarDealerScheme.cpp" />
 | 
			
		||||
    <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" />
 | 
			
		||||
    <ClCompile Include="..\..\..\source\main.cpp" />
 | 
			
		||||
    <ClCompile Include="..\..\..\source\system\system_util.cpp" />
 | 
			
		||||
    <ClCompile Include="..\..\..\source\test\test.cpp" />
 | 
			
		||||
    <ClCompile Include="..\..\..\source\Widgets\ContentWidget\QCarDealerAchievementWidget\QCarDealerAchievementWidget.cpp" />
 | 
			
		||||
    <ClCompile Include="..\..\..\source\Widgets\ContentWidget\QCarDealerSchemaWidget\QCarDealerSchemaWidget.cpp" />
 | 
			
		||||
    <ClCompile Include="..\..\..\source\widgets\ContentWidget\QDataManagementWidget\QDataManagementWidget.cpp" />
 | 
			
		||||
    <ClCompile Include="..\..\..\source\Widgets\ContentWidget\QRepairOrderWidget\QRepairOrderWidget.cpp" />
 | 
			
		||||
    <ClCompile Include="..\..\..\source\widgets\LoginWidget\QLoginDialog.cpp" />
 | 
			
		||||
    <ClCompile Include="..\..\..\source\Widgets\MainFrame\QMainFrame.cpp" />
 | 
			
		||||
  </ItemGroup>
 | 
			
		||||
  <ItemGroup>
 | 
			
		||||
    <QtRcc Include="..\..\..\source\resource.qrc" />
 | 
			
		||||
  </ItemGroup>
 | 
			
		||||
  <ItemGroup>
 | 
			
		||||
    <QtUic Include="..\..\..\source\Widgets\ContentWidget\QCarDealerAchievementWidget\QCarDealerAchievementWidget.ui" />
 | 
			
		||||
    <QtUic Include="..\..\..\source\Widgets\ContentWidget\QCarDealerSchemaWidget\QCarDealerSchemaWidget.ui" />
 | 
			
		||||
    <QtUic Include="..\..\..\source\widgets\ContentWidget\QDataManagementWidget\QDataManagementWidget.ui" />
 | 
			
		||||
    <QtUic Include="..\..\..\source\Widgets\ContentWidget\QRepairOrderWidget\QRepairOrderWidget.ui" />
 | 
			
		||||
    <QtUic Include="..\..\..\source\widgets\LoginWidget\QLoginDialog.ui" />
 | 
			
		||||
    <QtUic Include="..\..\..\source\Widgets\MainFrame\QMainFrame.ui" />
 | 
			
		||||
  </ItemGroup>
 | 
			
		||||
  <ItemGroup>
 | 
			
		||||
    <QtMoc Include="..\..\..\source\Widgets\MainFrame\QMainFrame.h" />
 | 
			
		||||
  </ItemGroup>
 | 
			
		||||
  <ItemGroup>
 | 
			
		||||
    <ClInclude Include="..\..\..\source\data\AppParameters\AppParameters.h" />
 | 
			
		||||
    <ClInclude Include="..\..\..\source\Data\DataManipulation\Excel\ExportToExcel.h" />
 | 
			
		||||
    <ClInclude Include="..\..\..\source\Data\DataManipulation\Excel\LoadFromExcel.h" />
 | 
			
		||||
    <ClInclude Include="..\..\..\source\data\DataManipulation\FromExcelToOracle\FromExcelToOracle.h" />
 | 
			
		||||
    <ClInclude Include="..\..\..\source\Data\DataManipulation\oracle\ImportToOracle.h" />
 | 
			
		||||
    <ClInclude Include="..\..\..\source\Data\Datastructure\CarDealerAchievement\CarDealerAchievement.h" />
 | 
			
		||||
    <ClInclude Include="..\..\..\source\Data\Datastructure\CarDealerScheme\CarDealerScheme.h" />
 | 
			
		||||
    <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" />
 | 
			
		||||
    <ClInclude Include="..\..\..\source\system\system_util.h" />
 | 
			
		||||
    <ClInclude Include="..\..\..\source\test\test.h" />
 | 
			
		||||
    <QtMoc Include="..\..\..\source\Widgets\ContentWidget\QCarDealerAchievementWidget\QCarDealerAchievementWidget.h" />
 | 
			
		||||
    <QtMoc Include="..\..\..\source\Widgets\ContentWidget\QRepairOrderWidget\QRepairOrderWidget.h" />
 | 
			
		||||
    <QtMoc Include="..\..\..\source\Widgets\ContentWidget\QCarDealerSchemaWidget\QCarDealerSchemaWidget.h" />
 | 
			
		||||
    <QtMoc Include="..\..\..\source\widgets\ContentWidget\QDataManagementWidget\QDataManagementWidget.h" />
 | 
			
		||||
    <QtMoc Include="..\..\..\source\widgets\LoginWidget\QLoginDialog.h" />
 | 
			
		||||
  </ItemGroup>
 | 
			
		||||
  <PropertyGroup Label="Globals">
 | 
			
		||||
    <ProjectGuid>{B12702AD-ABFB-343A-A199-8E24837244A3}</ProjectGuid>
 | 
			
		||||
    <Keyword>QtVS_v301</Keyword>
 | 
			
		||||
    <WindowsTargetPlatformVersion>10.0</WindowsTargetPlatformVersion>
 | 
			
		||||
  </PropertyGroup>
 | 
			
		||||
  <Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
 | 
			
		||||
  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="Configuration">
 | 
			
		||||
    <ConfigurationType>Application</ConfigurationType>
 | 
			
		||||
    <PlatformToolset>v142</PlatformToolset>
 | 
			
		||||
  </PropertyGroup>
 | 
			
		||||
  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="Configuration">
 | 
			
		||||
    <ConfigurationType>Application</ConfigurationType>
 | 
			
		||||
    <PlatformToolset>v142</PlatformToolset>
 | 
			
		||||
  </PropertyGroup>
 | 
			
		||||
  <Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
 | 
			
		||||
  <PropertyGroup Condition="'$(QtMsBuild)'=='' or !Exists('$(QtMsBuild)\qt.targets')">
 | 
			
		||||
    <QtMsBuild>$(MSBuildProjectDirectory)\QtMsBuild</QtMsBuild>
 | 
			
		||||
  </PropertyGroup>
 | 
			
		||||
  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
 | 
			
		||||
    <OutDir>$(SolutionDir)$(Platform)\$(Configuration)\</OutDir>
 | 
			
		||||
    <SourcePath>.\source\;vs2019\car_dealer_util\source\;$(SourcePath)</SourcePath>
 | 
			
		||||
    <IncludePath>vs2019\car_dealer_util\source\;$(IncludePath)</IncludePath>
 | 
			
		||||
  </PropertyGroup>
 | 
			
		||||
  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
 | 
			
		||||
    <OutDir>$(SolutionDir)$(Platform)\$(Configuration)\</OutDir>
 | 
			
		||||
    <SourcePath>.\source\;vs2019\car_dealer_util\source\;$(SourcePath)</SourcePath>
 | 
			
		||||
    <IncludePath>vs2019\car_dealer_util\source\;$(IncludePath)</IncludePath>
 | 
			
		||||
  </PropertyGroup>
 | 
			
		||||
  <Target Name="QtMsBuildNotFound" BeforeTargets="CustomBuild;ClCompile" Condition="!Exists('$(QtMsBuild)\qt.targets') or !Exists('$(QtMsBuild)\qt.props')">
 | 
			
		||||
    <Message Importance="High" Text="QtMsBuild: could not locate qt.targets, qt.props; project may not build correctly." />
 | 
			
		||||
  </Target>
 | 
			
		||||
  <ImportGroup Label="ExtensionSettings" />
 | 
			
		||||
  <ImportGroup Label="Shared" />
 | 
			
		||||
  <ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
 | 
			
		||||
    <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
 | 
			
		||||
    <Import Project="..\..\..\..\..\..\..\..\..\sdk\cpp\libxl\libxl-3.8.5.0\libxl_3.8.5.0_x64.props" />
 | 
			
		||||
    <Import Project="..\..\..\..\..\..\..\..\..\sdk\cpp\ocilib\4.6.3\ocilib_4.6.3_x64_vs2019_ansi.props" />
 | 
			
		||||
  </ImportGroup>
 | 
			
		||||
  <ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
 | 
			
		||||
    <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
 | 
			
		||||
    <Import Project="..\..\..\..\..\..\..\..\..\sdk\cpp\libxl\libxl-3.8.5.0\libxl_3.8.5.0_x64.props" />
 | 
			
		||||
    <Import Project="..\..\..\..\..\..\..\..\..\sdk\cpp\ocilib\4.6.3\ocilib_4.6.3_x64_vs2019_ansi.props" />
 | 
			
		||||
  </ImportGroup>
 | 
			
		||||
  <PropertyGroup Label="UserMacros" />
 | 
			
		||||
  <ImportGroup Condition="Exists('$(QtMsBuild)\qt_defaults.props')">
 | 
			
		||||
    <Import Project="$(QtMsBuild)\qt_defaults.props" />
 | 
			
		||||
  </ImportGroup>
 | 
			
		||||
  <PropertyGroup Label="QtSettings" Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
 | 
			
		||||
    <QtInstall>5.13.1_msvc2017_x64</QtInstall>
 | 
			
		||||
    <QtModules>core;gui;widgets</QtModules>
 | 
			
		||||
  </PropertyGroup>
 | 
			
		||||
  <PropertyGroup Label="QtSettings" Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
 | 
			
		||||
    <QtInstall>5.13.1_msvc2017_x64</QtInstall>
 | 
			
		||||
    <QtModules>core;gui;widgets</QtModules>
 | 
			
		||||
  </PropertyGroup>
 | 
			
		||||
  <ImportGroup Condition="Exists('$(QtMsBuild)\qt.props')">
 | 
			
		||||
    <Import Project="$(QtMsBuild)\qt.props" />
 | 
			
		||||
  </ImportGroup>
 | 
			
		||||
  <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
 | 
			
		||||
    <QtMoc>
 | 
			
		||||
      <PrependInclude>
 | 
			
		||||
      </PrependInclude>
 | 
			
		||||
      <QtMocDir>vs2019\car_dealer_util\source\%(RelativeDir)</QtMocDir>
 | 
			
		||||
    </QtMoc>
 | 
			
		||||
    <ClCompile>
 | 
			
		||||
      <MultiProcessorCompilation>true</MultiProcessorCompilation>
 | 
			
		||||
      <Optimization>Disabled</Optimization>
 | 
			
		||||
      <DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
 | 
			
		||||
      <RuntimeLibrary>MultiThreadedDebugDLL</RuntimeLibrary>
 | 
			
		||||
      <TreatWChar_tAsBuiltInType>true</TreatWChar_tAsBuiltInType>
 | 
			
		||||
      <PrecompiledHeader>NotUsing</PrecompiledHeader>
 | 
			
		||||
      <PrecompiledHeaderFile>stdafx.h</PrecompiledHeaderFile>
 | 
			
		||||
      <PrecompiledHeaderOutputFile>$(IntDir)$(TargetName).pch</PrecompiledHeaderOutputFile>
 | 
			
		||||
      <AdditionalOptions>/utf-8 %(AdditionalOptions)</AdditionalOptions>
 | 
			
		||||
      <AdditionalIncludeDirectories>..\..\..\source\widgets\LoginWidget;..\..\..\source\widgets\ContentWidget\QDataManagementWidget;..\..\..\source\Widgets\ContentWidget\QCarDealerSchemaWidget;..\..\..\source\Widgets\ContentWidget\QCarDealerAchievementWidget;..\..\..\source\Widgets\ContentWidget\QRepairOrderWidget;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
 | 
			
		||||
    </ClCompile>
 | 
			
		||||
    <Link>
 | 
			
		||||
      <SubSystem>Console</SubSystem>
 | 
			
		||||
      <OutputFile>$(OutDir)\$(ProjectName).exe</OutputFile>
 | 
			
		||||
      <GenerateDebugInformation>true</GenerateDebugInformation>
 | 
			
		||||
      <EntryPointSymbol>
 | 
			
		||||
      </EntryPointSymbol>
 | 
			
		||||
    </Link>
 | 
			
		||||
    <QtRcc>
 | 
			
		||||
      <QtRccDir>$(IntDir)\rcc\%(RelativeDir)</QtRccDir>
 | 
			
		||||
    </QtRcc>
 | 
			
		||||
  </ItemDefinitionGroup>
 | 
			
		||||
  <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
 | 
			
		||||
    <QtMoc>
 | 
			
		||||
      <PrependInclude>
 | 
			
		||||
      </PrependInclude>
 | 
			
		||||
      <QtMocDir>vs2019\car_dealer_util\source\%(RelativeDir)</QtMocDir>
 | 
			
		||||
    </QtMoc>
 | 
			
		||||
    <ClCompile>
 | 
			
		||||
      <MultiProcessorCompilation>true</MultiProcessorCompilation>
 | 
			
		||||
      <DebugInformationFormat />
 | 
			
		||||
      <RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary>
 | 
			
		||||
      <TreatWChar_tAsBuiltInType>true</TreatWChar_tAsBuiltInType>
 | 
			
		||||
      <PrecompiledHeader>NotUsing</PrecompiledHeader>
 | 
			
		||||
      <PrecompiledHeaderFile>stdafx.h</PrecompiledHeaderFile>
 | 
			
		||||
      <PrecompiledHeaderOutputFile>$(IntDir)$(TargetName).pch</PrecompiledHeaderOutputFile>
 | 
			
		||||
      <AdditionalOptions>/utf-8 %(AdditionalOptions)</AdditionalOptions>
 | 
			
		||||
      <AdditionalIncludeDirectories>..\..\..\source\widgets\LoginWidget;..\..\..\source\widgets\ContentWidget\QDataManagementWidget;..\..\..\source\Widgets\ContentWidget\QCarDealerSchemaWidget;..\..\..\source\Widgets\ContentWidget\QCarDealerAchievementWidget;..\..\..\source\Widgets\ContentWidget\QRepairOrderWidget;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
 | 
			
		||||
    </ClCompile>
 | 
			
		||||
    <Link>
 | 
			
		||||
      <SubSystem>Windows</SubSystem>
 | 
			
		||||
      <OutputFile>$(OutDir)\$(ProjectName).exe</OutputFile>
 | 
			
		||||
      <GenerateDebugInformation>false</GenerateDebugInformation>
 | 
			
		||||
      <EntryPointSymbol>
 | 
			
		||||
      </EntryPointSymbol>
 | 
			
		||||
    </Link>
 | 
			
		||||
    <QtRcc>
 | 
			
		||||
      <QtRccDir>$(IntDir)\rcc\%(RelativeDir)</QtRccDir>
 | 
			
		||||
    </QtRcc>
 | 
			
		||||
  </ItemDefinitionGroup>
 | 
			
		||||
  <Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
 | 
			
		||||
  <ImportGroup Condition="Exists('$(QtMsBuild)\qt.targets')">
 | 
			
		||||
    <Import Project="$(QtMsBuild)\qt.targets" />
 | 
			
		||||
  </ImportGroup>
 | 
			
		||||
  <ImportGroup Label="ExtensionTargets">
 | 
			
		||||
  </ImportGroup>
 | 
			
		||||
</Project>
 | 
			
		||||
@@ -0,0 +1,293 @@
 | 
			
		||||
<?xml version="1.0" encoding="utf-8"?>
 | 
			
		||||
<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
 | 
			
		||||
  <ItemGroup>
 | 
			
		||||
    <Filter Include="Source Files">
 | 
			
		||||
      <UniqueIdentifier>{4FC737F1-C7A5-4376-A066-2A32D752A2FF}</UniqueIdentifier>
 | 
			
		||||
      <Extensions>cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx</Extensions>
 | 
			
		||||
    </Filter>
 | 
			
		||||
    <Filter Include="Header Files">
 | 
			
		||||
      <UniqueIdentifier>{93995380-89BD-4b04-88EB-625FBE52EBFB}</UniqueIdentifier>
 | 
			
		||||
      <Extensions>h;hh;hpp;hxx;hm;inl;inc;xsd</Extensions>
 | 
			
		||||
    </Filter>
 | 
			
		||||
    <Filter Include="Resource Files">
 | 
			
		||||
      <UniqueIdentifier>{D9D6E242-F8AF-46E4-B9FD-80ECBC20BA3E}</UniqueIdentifier>
 | 
			
		||||
      <Extensions>qrc;*</Extensions>
 | 
			
		||||
      <ParseFiles>false</ParseFiles>
 | 
			
		||||
    </Filter>
 | 
			
		||||
    <Filter Include="Form Files">
 | 
			
		||||
      <UniqueIdentifier>{99349809-55BA-4b9d-BF79-8FDBB0286EB3}</UniqueIdentifier>
 | 
			
		||||
      <Extensions>ui</Extensions>
 | 
			
		||||
    </Filter>
 | 
			
		||||
    <Filter Include="Resource Files">
 | 
			
		||||
      <UniqueIdentifier>{D9D6E242-F8AF-46E4-B9FD-80ECBC20BA3E}</UniqueIdentifier>
 | 
			
		||||
      <Extensions>qrc;*</Extensions>
 | 
			
		||||
      <ParseFiles>false</ParseFiles>
 | 
			
		||||
    </Filter>
 | 
			
		||||
    <Filter Include="窗口">
 | 
			
		||||
      <UniqueIdentifier>{5c87e659-1421-43a0-a48d-42619f174fc9}</UniqueIdentifier>
 | 
			
		||||
    </Filter>
 | 
			
		||||
    <Filter Include="窗口\主窗口">
 | 
			
		||||
      <UniqueIdentifier>{bcfdef90-7980-4f25-8c6b-e1b05ab76277}</UniqueIdentifier>
 | 
			
		||||
    </Filter>
 | 
			
		||||
    <Filter Include="数据">
 | 
			
		||||
      <UniqueIdentifier>{fc082078-769c-4eb6-a822-e6879fd3a289}</UniqueIdentifier>
 | 
			
		||||
    </Filter>
 | 
			
		||||
    <Filter Include="数据\数据结构">
 | 
			
		||||
      <UniqueIdentifier>{87f39309-91c4-4326-9ed1-7b5851f44ddd}</UniqueIdentifier>
 | 
			
		||||
    </Filter>
 | 
			
		||||
    <Filter Include="数据\数据结构\车商方案表">
 | 
			
		||||
      <UniqueIdentifier>{ad4e7129-bd8d-4793-b7b0-ed3c754f1e8a}</UniqueIdentifier>
 | 
			
		||||
    </Filter>
 | 
			
		||||
    <Filter Include="数据\数据结构\车商业绩表">
 | 
			
		||||
      <UniqueIdentifier>{2c961c49-9981-447f-901d-c449e261fada}</UniqueIdentifier>
 | 
			
		||||
    </Filter>
 | 
			
		||||
    <Filter Include="数据\数据管理">
 | 
			
		||||
      <UniqueIdentifier>{3a2c4541-3486-4b47-9f4d-5aa7355190ed}</UniqueIdentifier>
 | 
			
		||||
    </Filter>
 | 
			
		||||
    <Filter Include="数据\数据管理\导入导出">
 | 
			
		||||
      <UniqueIdentifier>{1aa1a23b-6239-4b36-98be-cd6497547504}</UniqueIdentifier>
 | 
			
		||||
    </Filter>
 | 
			
		||||
    <Filter Include="测试">
 | 
			
		||||
      <UniqueIdentifier>{c6a0a5fd-26f9-4d8d-84a5-ce7edb04eb5f}</UniqueIdentifier>
 | 
			
		||||
    </Filter>
 | 
			
		||||
    <Filter Include="excel">
 | 
			
		||||
      <UniqueIdentifier>{61d5dd61-6b1f-4507-bb22-4ce463ad5b85}</UniqueIdentifier>
 | 
			
		||||
    </Filter>
 | 
			
		||||
    <Filter Include="数据\数据结构\送返修工单">
 | 
			
		||||
      <UniqueIdentifier>{985188c7-d233-46c8-bc1f-f7079c27bb2e}</UniqueIdentifier>
 | 
			
		||||
    </Filter>
 | 
			
		||||
    <Filter Include="操作系统">
 | 
			
		||||
      <UniqueIdentifier>{fe56cbb8-cdae-4845-ba36-378341641817}</UniqueIdentifier>
 | 
			
		||||
    </Filter>
 | 
			
		||||
    <Filter Include="数据\数据管理\导入导出\excel">
 | 
			
		||||
      <UniqueIdentifier>{849ef05c-ca3c-479b-ad38-3b9eae188820}</UniqueIdentifier>
 | 
			
		||||
    </Filter>
 | 
			
		||||
    <Filter Include="数据\数据管理\导入导出\oracle">
 | 
			
		||||
      <UniqueIdentifier>{cfe6b511-cb09-441f-8496-69415615391a}</UniqueIdentifier>
 | 
			
		||||
    </Filter>
 | 
			
		||||
    <Filter Include="数据库">
 | 
			
		||||
      <UniqueIdentifier>{6e142c33-b01c-4c8d-b8a4-beaaee863cee}</UniqueIdentifier>
 | 
			
		||||
    </Filter>
 | 
			
		||||
    <Filter Include="数据库\ocilib">
 | 
			
		||||
      <UniqueIdentifier>{e5f3c3be-5fe7-471e-8dc7-d5889f5f87d9}</UniqueIdentifier>
 | 
			
		||||
    </Filter>
 | 
			
		||||
    <Filter Include="窗口\登录窗口">
 | 
			
		||||
      <UniqueIdentifier>{4aafaac0-1c39-407d-9701-175ad2e441c2}</UniqueIdentifier>
 | 
			
		||||
    </Filter>
 | 
			
		||||
    <Filter Include="数据\查询">
 | 
			
		||||
      <UniqueIdentifier>{ae2625d1-a2b0-48d2-8391-d8f42760e1ff}</UniqueIdentifier>
 | 
			
		||||
    </Filter>
 | 
			
		||||
    <Filter Include="数据\数据结构\用户信息">
 | 
			
		||||
      <UniqueIdentifier>{f51a3f4d-ff6f-4590-b123-b61afde72f0a}</UniqueIdentifier>
 | 
			
		||||
    </Filter>
 | 
			
		||||
    <Filter Include="数据\全局对象">
 | 
			
		||||
      <UniqueIdentifier>{7f951e1f-a198-4833-bbec-853de77c8cfe}</UniqueIdentifier>
 | 
			
		||||
    </Filter>
 | 
			
		||||
    <Filter Include="数据\数据管理\导入导出\直接导入导出">
 | 
			
		||||
      <UniqueIdentifier>{ef490558-0c27-4a12-a626-583699d6a35f}</UniqueIdentifier>
 | 
			
		||||
    </Filter>
 | 
			
		||||
    <Filter Include="窗口\内容窗口">
 | 
			
		||||
      <UniqueIdentifier>{c8f4e91d-d7b8-43e9-98c2-ba4d6336404f}</UniqueIdentifier>
 | 
			
		||||
    </Filter>
 | 
			
		||||
    <Filter Include="窗口\内容窗口\数据管理">
 | 
			
		||||
      <UniqueIdentifier>{c84c9e39-55b1-4672-9565-1fbe35c349a9}</UniqueIdentifier>
 | 
			
		||||
    </Filter>
 | 
			
		||||
    <Filter Include="窗口\内容窗口\数据管理\车商方案表">
 | 
			
		||||
      <UniqueIdentifier>{8590121c-3735-435c-bc37-248e931917d8}</UniqueIdentifier>
 | 
			
		||||
    </Filter>
 | 
			
		||||
    <Filter Include="窗口\内容窗口\数据管理\车商业绩表">
 | 
			
		||||
      <UniqueIdentifier>{5951fafd-9da2-476a-8ef9-bd6825240e55}</UniqueIdentifier>
 | 
			
		||||
    </Filter>
 | 
			
		||||
    <Filter Include="数据\数据结构\送返修推荐表">
 | 
			
		||||
      <UniqueIdentifier>{21e75150-0798-4087-8cc8-8bcad02c0694}</UniqueIdentifier>
 | 
			
		||||
    </Filter>
 | 
			
		||||
    <Filter Include="数据\数据结构\新送返修监控报表">
 | 
			
		||||
      <UniqueIdentifier>{8d1f7b99-d4bb-406c-a9f3-1e0256517982}</UniqueIdentifier>
 | 
			
		||||
    </Filter>
 | 
			
		||||
    <Filter Include="窗口\内容窗口\数据管理\送返修工单表">
 | 
			
		||||
      <UniqueIdentifier>{4f98736e-47b6-4cf8-b9e8-d9f18032e5d5}</UniqueIdentifier>
 | 
			
		||||
    </Filter>
 | 
			
		||||
    <Filter Include="窗口\内容窗口\数据管理\新送返修监控表">
 | 
			
		||||
      <UniqueIdentifier>{59d4a644-9e59-4094-ad3f-875cd1afda21}</UniqueIdentifier>
 | 
			
		||||
    </Filter>
 | 
			
		||||
    <Filter Include="窗口\内容窗口\数据管理\卢霖城 - 送返修推荐表">
 | 
			
		||||
      <UniqueIdentifier>{10df9eca-f59f-4326-aa5c-d925cd47da8d}</UniqueIdentifier>
 | 
			
		||||
    </Filter>
 | 
			
		||||
  </ItemGroup>
 | 
			
		||||
  <ItemGroup>
 | 
			
		||||
    <ClCompile Include="..\..\..\source\main.cpp">
 | 
			
		||||
      <Filter>Source Files</Filter>
 | 
			
		||||
    </ClCompile>
 | 
			
		||||
    <ClCompile Include="..\..\..\source\Widgets\MainFrame\QMainFrame.cpp">
 | 
			
		||||
      <Filter>窗口\主窗口</Filter>
 | 
			
		||||
    </ClCompile>
 | 
			
		||||
    <ClCompile Include="..\..\..\source\Data\Datastructure\CarDealerScheme\CarDealerScheme.cpp">
 | 
			
		||||
      <Filter>数据\数据结构\车商方案表</Filter>
 | 
			
		||||
    </ClCompile>
 | 
			
		||||
    <ClCompile Include="..\..\..\source\Data\Datastructure\CarDealerAchievement\CarDealerAchievement.cpp">
 | 
			
		||||
      <Filter>数据\数据结构\车商业绩表</Filter>
 | 
			
		||||
    </ClCompile>
 | 
			
		||||
    <ClCompile Include="..\..\..\source\Data\DataManipulation\Excel\ExportToExcel.cpp">
 | 
			
		||||
      <Filter>数据\数据管理\导入导出\excel</Filter>
 | 
			
		||||
    </ClCompile>
 | 
			
		||||
    <ClCompile Include="..\..\..\source\Data\DataManipulation\Excel\LoadFromExcel.cpp">
 | 
			
		||||
      <Filter>数据\数据管理\导入导出\excel</Filter>
 | 
			
		||||
    </ClCompile>
 | 
			
		||||
    <ClCompile Include="..\..\..\source\test\test.cpp">
 | 
			
		||||
      <Filter>测试</Filter>
 | 
			
		||||
    </ClCompile>
 | 
			
		||||
    <ClCompile Include="..\..\..\source\data\excel\excel.cpp">
 | 
			
		||||
      <Filter>excel</Filter>
 | 
			
		||||
    </ClCompile>
 | 
			
		||||
    <ClCompile Include="..\..\..\source\data\Datastructure\RepairOrder\RepairOrder.cpp">
 | 
			
		||||
      <Filter>数据\数据结构\送返修工单</Filter>
 | 
			
		||||
    </ClCompile>
 | 
			
		||||
    <ClCompile Include="..\..\..\source\system\system_util.cpp">
 | 
			
		||||
      <Filter>操作系统</Filter>
 | 
			
		||||
    </ClCompile>
 | 
			
		||||
    <ClCompile Include="..\..\..\source\Data\DataManipulation\oracle\ImportToOracle.cpp">
 | 
			
		||||
      <Filter>数据\数据管理\导入导出\oracle</Filter>
 | 
			
		||||
    </ClCompile>
 | 
			
		||||
    <ClCompile Include="..\..\..\source\db\ocilib\db_oper.cpp">
 | 
			
		||||
      <Filter>数据库\ocilib</Filter>
 | 
			
		||||
    </ClCompile>
 | 
			
		||||
    <ClCompile Include="..\..\..\source\widgets\LoginWidget\QLoginDialog.cpp">
 | 
			
		||||
      <Filter>窗口\登录窗口</Filter>
 | 
			
		||||
    </ClCompile>
 | 
			
		||||
    <ClCompile Include="..\..\..\source\data\query\query_user.cpp">
 | 
			
		||||
      <Filter>数据\查询</Filter>
 | 
			
		||||
    </ClCompile>
 | 
			
		||||
    <ClCompile Include="..\..\..\source\data\Datastructure\UserInfo\UserInfo.cpp">
 | 
			
		||||
      <Filter>数据\数据结构\用户信息</Filter>
 | 
			
		||||
    </ClCompile>
 | 
			
		||||
    <ClCompile Include="..\..\..\source\data\AppParameters\AppParameters.cpp">
 | 
			
		||||
      <Filter>数据\全局对象</Filter>
 | 
			
		||||
    </ClCompile>
 | 
			
		||||
    <ClCompile Include="..\..\..\source\data\DataManipulation\FromExcelToOracle\FromExcelToOracle.cpp">
 | 
			
		||||
      <Filter>数据\数据管理\导入导出\直接导入导出</Filter>
 | 
			
		||||
    </ClCompile>
 | 
			
		||||
    <ClCompile Include="..\..\..\source\widgets\ContentWidget\QDataManagementWidget\QDataManagementWidget.cpp">
 | 
			
		||||
      <Filter>窗口\内容窗口\数据管理</Filter>
 | 
			
		||||
    </ClCompile>
 | 
			
		||||
    <ClCompile Include="..\..\..\source\Widgets\ContentWidget\QCarDealerSchemaWidget\QCarDealerSchemaWidget.cpp">
 | 
			
		||||
      <Filter>窗口\内容窗口\数据管理\车商方案表</Filter>
 | 
			
		||||
    </ClCompile>
 | 
			
		||||
    <ClCompile Include="..\..\..\source\Widgets\ContentWidget\QRepairOrderWidget\QRepairOrderWidget.cpp">
 | 
			
		||||
      <Filter>窗口\内容窗口\数据管理\送返修工单表</Filter>
 | 
			
		||||
    </ClCompile>
 | 
			
		||||
    <ClCompile Include="..\..\..\source\Widgets\ContentWidget\QCarDealerAchievementWidget\QCarDealerAchievementWidget.cpp">
 | 
			
		||||
      <Filter>窗口\内容窗口\数据管理\车商业绩表</Filter>
 | 
			
		||||
    </ClCompile>
 | 
			
		||||
    <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">
 | 
			
		||||
      <Filter>Resource Files</Filter>
 | 
			
		||||
    </QtRcc>
 | 
			
		||||
  </ItemGroup>
 | 
			
		||||
  <ItemGroup>
 | 
			
		||||
    <QtUic Include="..\..\..\source\Widgets\MainFrame\QMainFrame.ui">
 | 
			
		||||
      <Filter>窗口\主窗口</Filter>
 | 
			
		||||
    </QtUic>
 | 
			
		||||
    <QtUic Include="..\..\..\source\widgets\LoginWidget\QLoginDialog.ui">
 | 
			
		||||
      <Filter>窗口\登录窗口</Filter>
 | 
			
		||||
    </QtUic>
 | 
			
		||||
    <QtUic Include="..\..\..\source\widgets\ContentWidget\QDataManagementWidget\QDataManagementWidget.ui">
 | 
			
		||||
      <Filter>窗口\内容窗口\数据管理</Filter>
 | 
			
		||||
    </QtUic>
 | 
			
		||||
    <QtUic Include="..\..\..\source\Widgets\ContentWidget\QCarDealerSchemaWidget\QCarDealerSchemaWidget.ui">
 | 
			
		||||
      <Filter>窗口\内容窗口\数据管理\车商方案表</Filter>
 | 
			
		||||
    </QtUic>
 | 
			
		||||
    <QtUic Include="..\..\..\source\Widgets\ContentWidget\QRepairOrderWidget\QRepairOrderWidget.ui">
 | 
			
		||||
      <Filter>窗口\内容窗口\数据管理\送返修工单表</Filter>
 | 
			
		||||
    </QtUic>
 | 
			
		||||
    <QtUic Include="..\..\..\source\Widgets\ContentWidget\QCarDealerAchievementWidget\QCarDealerAchievementWidget.ui">
 | 
			
		||||
      <Filter>窗口\内容窗口\数据管理\车商业绩表</Filter>
 | 
			
		||||
    </QtUic>
 | 
			
		||||
  </ItemGroup>
 | 
			
		||||
  <ItemGroup>
 | 
			
		||||
    <QtMoc Include="..\..\..\source\Widgets\MainFrame\QMainFrame.h">
 | 
			
		||||
      <Filter>窗口\主窗口</Filter>
 | 
			
		||||
    </QtMoc>
 | 
			
		||||
    <QtMoc Include="..\..\..\source\widgets\LoginWidget\QLoginDialog.h">
 | 
			
		||||
      <Filter>窗口\登录窗口</Filter>
 | 
			
		||||
    </QtMoc>
 | 
			
		||||
    <QtMoc Include="..\..\..\source\widgets\ContentWidget\QDataManagementWidget\QDataManagementWidget.h">
 | 
			
		||||
      <Filter>窗口\内容窗口\数据管理</Filter>
 | 
			
		||||
    </QtMoc>
 | 
			
		||||
    <QtMoc Include="..\..\..\source\Widgets\ContentWidget\QCarDealerSchemaWidget\QCarDealerSchemaWidget.h">
 | 
			
		||||
      <Filter>窗口\内容窗口\数据管理\车商方案表</Filter>
 | 
			
		||||
    </QtMoc>
 | 
			
		||||
    <QtMoc Include="..\..\..\source\Widgets\ContentWidget\QRepairOrderWidget\QRepairOrderWidget.h">
 | 
			
		||||
      <Filter>窗口\内容窗口\数据管理\送返修工单表</Filter>
 | 
			
		||||
    </QtMoc>
 | 
			
		||||
    <QtMoc Include="..\..\..\source\Widgets\ContentWidget\QCarDealerAchievementWidget\QCarDealerAchievementWidget.h">
 | 
			
		||||
      <Filter>窗口\内容窗口\数据管理\车商业绩表</Filter>
 | 
			
		||||
    </QtMoc>
 | 
			
		||||
  </ItemGroup>
 | 
			
		||||
  <ItemGroup>
 | 
			
		||||
    <Image Include="..\..\..\source\car_dealer_util.ico">
 | 
			
		||||
      <Filter>Resource Files</Filter>
 | 
			
		||||
    </Image>
 | 
			
		||||
  </ItemGroup>
 | 
			
		||||
  <ItemGroup>
 | 
			
		||||
    <ResourceCompile Include="..\..\..\source\car_dealer_util.rc">
 | 
			
		||||
      <Filter>Resource Files</Filter>
 | 
			
		||||
    </ResourceCompile>
 | 
			
		||||
  </ItemGroup>
 | 
			
		||||
  <ItemGroup>
 | 
			
		||||
    <ClInclude Include="..\..\..\source\Data\Datastructure\CarDealerScheme\CarDealerScheme.h">
 | 
			
		||||
      <Filter>数据\数据结构\车商方案表</Filter>
 | 
			
		||||
    </ClInclude>
 | 
			
		||||
    <ClInclude Include="..\..\..\source\Data\Datastructure\CarDealerAchievement\CarDealerAchievement.h">
 | 
			
		||||
      <Filter>数据\数据结构\车商业绩表</Filter>
 | 
			
		||||
    </ClInclude>
 | 
			
		||||
    <ClInclude Include="..\..\..\source\Data\DataManipulation\Excel\ExportToExcel.h">
 | 
			
		||||
      <Filter>数据\数据管理\导入导出\excel</Filter>
 | 
			
		||||
    </ClInclude>
 | 
			
		||||
    <ClInclude Include="..\..\..\source\Data\DataManipulation\Excel\LoadFromExcel.h">
 | 
			
		||||
      <Filter>数据\数据管理\导入导出\excel</Filter>
 | 
			
		||||
    </ClInclude>
 | 
			
		||||
    <ClInclude Include="..\..\..\source\test\test.h">
 | 
			
		||||
      <Filter>测试</Filter>
 | 
			
		||||
    </ClInclude>
 | 
			
		||||
    <ClInclude Include="..\..\..\source\data\excel\excel.h">
 | 
			
		||||
      <Filter>excel</Filter>
 | 
			
		||||
    </ClInclude>
 | 
			
		||||
    <ClInclude Include="..\..\..\source\data\Datastructure\RepairOrder\RepairOrder.h">
 | 
			
		||||
      <Filter>数据\数据结构\送返修工单</Filter>
 | 
			
		||||
    </ClInclude>
 | 
			
		||||
    <ClInclude Include="..\..\..\source\system\system_util.h">
 | 
			
		||||
      <Filter>操作系统</Filter>
 | 
			
		||||
    </ClInclude>
 | 
			
		||||
    <ClInclude Include="..\..\..\source\Data\DataManipulation\oracle\ImportToOracle.h">
 | 
			
		||||
      <Filter>数据\数据管理\导入导出\oracle</Filter>
 | 
			
		||||
    </ClInclude>
 | 
			
		||||
    <ClInclude Include="..\..\..\source\db\ocilib\db_oper.h">
 | 
			
		||||
      <Filter>数据库\ocilib</Filter>
 | 
			
		||||
    </ClInclude>
 | 
			
		||||
    <ClInclude Include="..\..\..\source\data\query\query_user.h">
 | 
			
		||||
      <Filter>数据\查询</Filter>
 | 
			
		||||
    </ClInclude>
 | 
			
		||||
    <ClInclude Include="..\..\..\source\data\Datastructure\UserInfo\UserInfo.h">
 | 
			
		||||
      <Filter>数据\数据结构\用户信息</Filter>
 | 
			
		||||
    </ClInclude>
 | 
			
		||||
    <ClInclude Include="..\..\..\source\data\AppParameters\AppParameters.h">
 | 
			
		||||
      <Filter>数据\全局对象</Filter>
 | 
			
		||||
    </ClInclude>
 | 
			
		||||
    <ClInclude Include="..\..\..\source\data\DataManipulation\FromExcelToOracle\FromExcelToOracle.h">
 | 
			
		||||
      <Filter>数据\数据管理\导入导出\直接导入导出</Filter>
 | 
			
		||||
    </ClInclude>
 | 
			
		||||
    <ClInclude Include="..\..\..\source\Data\Datastructure\RepairSuggestion\RepairSuggestionRecord.h">
 | 
			
		||||
      <Filter>数据\数据结构\送返修推荐表</Filter>
 | 
			
		||||
    </ClInclude>
 | 
			
		||||
    <ClInclude Include="..\..\..\source\Data\Datastructure\新送返修监控报表\新送返修监控报表.h">
 | 
			
		||||
      <Filter>数据\数据结构\新送返修监控报表</Filter>
 | 
			
		||||
    </ClInclude>
 | 
			
		||||
  </ItemGroup>
 | 
			
		||||
</Project>
 | 
			
		||||
@@ -0,0 +1,4 @@
 | 
			
		||||
<?xml version="1.0" encoding="utf-8"?>
 | 
			
		||||
<Project ToolsVersion="Current" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
 | 
			
		||||
  <PropertyGroup />
 | 
			
		||||
</Project>
 | 
			
		||||
@@ -0,0 +1,95 @@
 | 
			
		||||
/****************************************************************************
 | 
			
		||||
** Meta object code from reading C++ file 'QCarDealerAchievementWidget.h'
 | 
			
		||||
**
 | 
			
		||||
** Created by: The Qt Meta Object Compiler version 67 (Qt 5.13.1)
 | 
			
		||||
**
 | 
			
		||||
** WARNING! All changes made in this file will be lost!
 | 
			
		||||
*****************************************************************************/
 | 
			
		||||
 | 
			
		||||
#include <memory>
 | 
			
		||||
#include "D:/develop/projects_win/2019/car_dealer_util/代码/cpp/car_dealer_util/source/Widgets/ContentWidget/QCarDealerAchievementWidget/QCarDealerAchievementWidget.h"
 | 
			
		||||
#include <QtCore/qbytearray.h>
 | 
			
		||||
#include <QtCore/qmetatype.h>
 | 
			
		||||
#if !defined(Q_MOC_OUTPUT_REVISION)
 | 
			
		||||
#error "The header file 'QCarDealerAchievementWidget.h' doesn't include <QObject>."
 | 
			
		||||
#elif Q_MOC_OUTPUT_REVISION != 67
 | 
			
		||||
#error "This file was generated using the moc from 5.13.1. It"
 | 
			
		||||
#error "cannot be used with the include files from this version of Qt."
 | 
			
		||||
#error "(The moc has changed too much.)"
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
QT_BEGIN_MOC_NAMESPACE
 | 
			
		||||
QT_WARNING_PUSH
 | 
			
		||||
QT_WARNING_DISABLE_DEPRECATED
 | 
			
		||||
struct qt_meta_stringdata_QCarDealerAchievementWidget_t {
 | 
			
		||||
    QByteArrayData data[1];
 | 
			
		||||
    char stringdata0[28];
 | 
			
		||||
};
 | 
			
		||||
#define QT_MOC_LITERAL(idx, ofs, len) \
 | 
			
		||||
    Q_STATIC_BYTE_ARRAY_DATA_HEADER_INITIALIZER_WITH_OFFSET(len, \
 | 
			
		||||
    qptrdiff(offsetof(qt_meta_stringdata_QCarDealerAchievementWidget_t, stringdata0) + ofs \
 | 
			
		||||
        - idx * sizeof(QByteArrayData)) \
 | 
			
		||||
    )
 | 
			
		||||
static const qt_meta_stringdata_QCarDealerAchievementWidget_t qt_meta_stringdata_QCarDealerAchievementWidget = {
 | 
			
		||||
    {
 | 
			
		||||
QT_MOC_LITERAL(0, 0, 27) // "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
 | 
			
		||||
 | 
			
		||||
       0        // eod
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
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);
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
QT_INIT_METAOBJECT const QMetaObject QCarDealerAchievementWidget::staticMetaObject = { {
 | 
			
		||||
    &QWidget::staticMetaObject,
 | 
			
		||||
    qt_meta_stringdata_QCarDealerAchievementWidget.data,
 | 
			
		||||
    qt_meta_data_QCarDealerAchievementWidget,
 | 
			
		||||
    qt_static_metacall,
 | 
			
		||||
    nullptr,
 | 
			
		||||
    nullptr
 | 
			
		||||
} };
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
const QMetaObject *QCarDealerAchievementWidget::metaObject() const
 | 
			
		||||
{
 | 
			
		||||
    return QObject::d_ptr->metaObject ? QObject::d_ptr->dynamicMetaObject() : &staticMetaObject;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
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);
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
int QCarDealerAchievementWidget::qt_metacall(QMetaObject::Call _c, int _id, void **_a)
 | 
			
		||||
{
 | 
			
		||||
    _id = QWidget::qt_metacall(_c, _id, _a);
 | 
			
		||||
    return _id;
 | 
			
		||||
}
 | 
			
		||||
QT_WARNING_POP
 | 
			
		||||
QT_END_MOC_NAMESPACE
 | 
			
		||||
@@ -0,0 +1,46 @@
 | 
			
		||||
/********************************************************************************
 | 
			
		||||
** Form generated from reading UI file 'QCarDealerAchievementWidget.ui'
 | 
			
		||||
**
 | 
			
		||||
** Created by: Qt User Interface Compiler version 5.13.1
 | 
			
		||||
**
 | 
			
		||||
** WARNING! All changes made in this file will be lost when recompiling UI file!
 | 
			
		||||
********************************************************************************/
 | 
			
		||||
 | 
			
		||||
#ifndef UI_QCARDEALERACHIEVEMENTWIDGET_H
 | 
			
		||||
#define UI_QCARDEALERACHIEVEMENTWIDGET_H
 | 
			
		||||
 | 
			
		||||
#include <QtCore/QVariant>
 | 
			
		||||
#include <QtWidgets/QApplication>
 | 
			
		||||
#include <QtWidgets/QWidget>
 | 
			
		||||
 | 
			
		||||
QT_BEGIN_NAMESPACE
 | 
			
		||||
 | 
			
		||||
class Ui_QCarDealerAchievementWidget
 | 
			
		||||
{
 | 
			
		||||
public:
 | 
			
		||||
 | 
			
		||||
    void setupUi(QWidget *QCarDealerAchievementWidget)
 | 
			
		||||
    {
 | 
			
		||||
        if (QCarDealerAchievementWidget->objectName().isEmpty())
 | 
			
		||||
            QCarDealerAchievementWidget->setObjectName(QString::fromUtf8("QCarDealerAchievementWidget"));
 | 
			
		||||
        QCarDealerAchievementWidget->resize(400, 300);
 | 
			
		||||
 | 
			
		||||
        retranslateUi(QCarDealerAchievementWidget);
 | 
			
		||||
 | 
			
		||||
        QMetaObject::connectSlotsByName(QCarDealerAchievementWidget);
 | 
			
		||||
    } // setupUi
 | 
			
		||||
 | 
			
		||||
    void retranslateUi(QWidget *QCarDealerAchievementWidget)
 | 
			
		||||
    {
 | 
			
		||||
        QCarDealerAchievementWidget->setWindowTitle(QCoreApplication::translate("QCarDealerAchievementWidget", "QCarDealerAchievementWidget", nullptr));
 | 
			
		||||
    } // retranslateUi
 | 
			
		||||
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
namespace Ui {
 | 
			
		||||
    class QCarDealerAchievementWidget: public Ui_QCarDealerAchievementWidget {};
 | 
			
		||||
} // namespace Ui
 | 
			
		||||
 | 
			
		||||
QT_END_NAMESPACE
 | 
			
		||||
 | 
			
		||||
#endif // UI_QCARDEALERACHIEVEMENTWIDGET_H
 | 
			
		||||
@@ -0,0 +1,95 @@
 | 
			
		||||
/****************************************************************************
 | 
			
		||||
** Meta object code from reading C++ file 'QCarDealerSchemaWidget.h'
 | 
			
		||||
**
 | 
			
		||||
** Created by: The Qt Meta Object Compiler version 67 (Qt 5.13.1)
 | 
			
		||||
**
 | 
			
		||||
** WARNING! All changes made in this file will be lost!
 | 
			
		||||
*****************************************************************************/
 | 
			
		||||
 | 
			
		||||
#include <memory>
 | 
			
		||||
#include "../../../../../../../source/Widgets/ContentWidget/QCarDealerSchemaWidget/QCarDealerSchemaWidget.h"
 | 
			
		||||
#include <QtCore/qbytearray.h>
 | 
			
		||||
#include <QtCore/qmetatype.h>
 | 
			
		||||
#if !defined(Q_MOC_OUTPUT_REVISION)
 | 
			
		||||
#error "The header file 'QCarDealerSchemaWidget.h' doesn't include <QObject>."
 | 
			
		||||
#elif Q_MOC_OUTPUT_REVISION != 67
 | 
			
		||||
#error "This file was generated using the moc from 5.13.1. It"
 | 
			
		||||
#error "cannot be used with the include files from this version of Qt."
 | 
			
		||||
#error "(The moc has changed too much.)"
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
QT_BEGIN_MOC_NAMESPACE
 | 
			
		||||
QT_WARNING_PUSH
 | 
			
		||||
QT_WARNING_DISABLE_DEPRECATED
 | 
			
		||||
struct qt_meta_stringdata_QCarDealerSchemaWidget_t {
 | 
			
		||||
    QByteArrayData data[1];
 | 
			
		||||
    char stringdata0[23];
 | 
			
		||||
};
 | 
			
		||||
#define QT_MOC_LITERAL(idx, ofs, len) \
 | 
			
		||||
    Q_STATIC_BYTE_ARRAY_DATA_HEADER_INITIALIZER_WITH_OFFSET(len, \
 | 
			
		||||
    qptrdiff(offsetof(qt_meta_stringdata_QCarDealerSchemaWidget_t, stringdata0) + ofs \
 | 
			
		||||
        - idx * sizeof(QByteArrayData)) \
 | 
			
		||||
    )
 | 
			
		||||
static const qt_meta_stringdata_QCarDealerSchemaWidget_t qt_meta_stringdata_QCarDealerSchemaWidget = {
 | 
			
		||||
    {
 | 
			
		||||
QT_MOC_LITERAL(0, 0, 22) // "QCarDealerSchemaWidget"
 | 
			
		||||
 | 
			
		||||
    },
 | 
			
		||||
    "QCarDealerSchemaWidget"
 | 
			
		||||
};
 | 
			
		||||
#undef QT_MOC_LITERAL
 | 
			
		||||
 | 
			
		||||
static const uint qt_meta_data_QCarDealerSchemaWidget[] = {
 | 
			
		||||
 | 
			
		||||
 // 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
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
void QCarDealerSchemaWidget::qt_static_metacall(QObject *_o, QMetaObject::Call _c, int _id, void **_a)
 | 
			
		||||
{
 | 
			
		||||
    Q_UNUSED(_o);
 | 
			
		||||
    Q_UNUSED(_id);
 | 
			
		||||
    Q_UNUSED(_c);
 | 
			
		||||
    Q_UNUSED(_a);
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
QT_INIT_METAOBJECT const QMetaObject QCarDealerSchemaWidget::staticMetaObject = { {
 | 
			
		||||
    &QWidget::staticMetaObject,
 | 
			
		||||
    qt_meta_stringdata_QCarDealerSchemaWidget.data,
 | 
			
		||||
    qt_meta_data_QCarDealerSchemaWidget,
 | 
			
		||||
    qt_static_metacall,
 | 
			
		||||
    nullptr,
 | 
			
		||||
    nullptr
 | 
			
		||||
} };
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
const QMetaObject *QCarDealerSchemaWidget::metaObject() const
 | 
			
		||||
{
 | 
			
		||||
    return QObject::d_ptr->metaObject ? QObject::d_ptr->dynamicMetaObject() : &staticMetaObject;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
void *QCarDealerSchemaWidget::qt_metacast(const char *_clname)
 | 
			
		||||
{
 | 
			
		||||
    if (!_clname) return nullptr;
 | 
			
		||||
    if (!strcmp(_clname, qt_meta_stringdata_QCarDealerSchemaWidget.stringdata0))
 | 
			
		||||
        return static_cast<void*>(this);
 | 
			
		||||
    return QWidget::qt_metacast(_clname);
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
int QCarDealerSchemaWidget::qt_metacall(QMetaObject::Call _c, int _id, void **_a)
 | 
			
		||||
{
 | 
			
		||||
    _id = QWidget::qt_metacall(_c, _id, _a);
 | 
			
		||||
    return _id;
 | 
			
		||||
}
 | 
			
		||||
QT_WARNING_POP
 | 
			
		||||
QT_END_MOC_NAMESPACE
 | 
			
		||||
@@ -0,0 +1,46 @@
 | 
			
		||||
/********************************************************************************
 | 
			
		||||
** Form generated from reading UI file 'QCarDealerSchemaWidget.ui'
 | 
			
		||||
**
 | 
			
		||||
** Created by: Qt User Interface Compiler version 5.13.1
 | 
			
		||||
**
 | 
			
		||||
** WARNING! All changes made in this file will be lost when recompiling UI file!
 | 
			
		||||
********************************************************************************/
 | 
			
		||||
 | 
			
		||||
#ifndef UI_QCARDEALERSCHEMAWIDGET_H
 | 
			
		||||
#define UI_QCARDEALERSCHEMAWIDGET_H
 | 
			
		||||
 | 
			
		||||
#include <QtCore/QVariant>
 | 
			
		||||
#include <QtWidgets/QApplication>
 | 
			
		||||
#include <QtWidgets/QWidget>
 | 
			
		||||
 | 
			
		||||
QT_BEGIN_NAMESPACE
 | 
			
		||||
 | 
			
		||||
class Ui_QCarDealerSchemaWidget
 | 
			
		||||
{
 | 
			
		||||
public:
 | 
			
		||||
 | 
			
		||||
    void setupUi(QWidget *QCarDealerSchemaWidget)
 | 
			
		||||
    {
 | 
			
		||||
        if (QCarDealerSchemaWidget->objectName().isEmpty())
 | 
			
		||||
            QCarDealerSchemaWidget->setObjectName(QString::fromUtf8("QCarDealerSchemaWidget"));
 | 
			
		||||
        QCarDealerSchemaWidget->resize(725, 508);
 | 
			
		||||
 | 
			
		||||
        retranslateUi(QCarDealerSchemaWidget);
 | 
			
		||||
 | 
			
		||||
        QMetaObject::connectSlotsByName(QCarDealerSchemaWidget);
 | 
			
		||||
    } // setupUi
 | 
			
		||||
 | 
			
		||||
    void retranslateUi(QWidget *QCarDealerSchemaWidget)
 | 
			
		||||
    {
 | 
			
		||||
        QCarDealerSchemaWidget->setWindowTitle(QCoreApplication::translate("QCarDealerSchemaWidget", "QCarDealerSchemaWidget", nullptr));
 | 
			
		||||
    } // retranslateUi
 | 
			
		||||
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
namespace Ui {
 | 
			
		||||
    class QCarDealerSchemaWidget: public Ui_QCarDealerSchemaWidget {};
 | 
			
		||||
} // namespace Ui
 | 
			
		||||
 | 
			
		||||
QT_END_NAMESPACE
 | 
			
		||||
 | 
			
		||||
#endif // UI_QCARDEALERSCHEMAWIDGET_H
 | 
			
		||||
@@ -0,0 +1,95 @@
 | 
			
		||||
/****************************************************************************
 | 
			
		||||
** Meta object code from reading C++ file 'QDataManagementWidget.h'
 | 
			
		||||
**
 | 
			
		||||
** Created by: The Qt Meta Object Compiler version 67 (Qt 5.13.1)
 | 
			
		||||
**
 | 
			
		||||
** WARNING! All changes made in this file will be lost!
 | 
			
		||||
*****************************************************************************/
 | 
			
		||||
 | 
			
		||||
#include <memory>
 | 
			
		||||
#include "../../../../../../../source/widgets/ContentWidget/QDataManagementWidget/QDataManagementWidget.h"
 | 
			
		||||
#include <QtCore/qbytearray.h>
 | 
			
		||||
#include <QtCore/qmetatype.h>
 | 
			
		||||
#if !defined(Q_MOC_OUTPUT_REVISION)
 | 
			
		||||
#error "The header file 'QDataManagementWidget.h' doesn't include <QObject>."
 | 
			
		||||
#elif Q_MOC_OUTPUT_REVISION != 67
 | 
			
		||||
#error "This file was generated using the moc from 5.13.1. It"
 | 
			
		||||
#error "cannot be used with the include files from this version of Qt."
 | 
			
		||||
#error "(The moc has changed too much.)"
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
QT_BEGIN_MOC_NAMESPACE
 | 
			
		||||
QT_WARNING_PUSH
 | 
			
		||||
QT_WARNING_DISABLE_DEPRECATED
 | 
			
		||||
struct qt_meta_stringdata_QDataManagementWidget_t {
 | 
			
		||||
    QByteArrayData data[1];
 | 
			
		||||
    char stringdata0[22];
 | 
			
		||||
};
 | 
			
		||||
#define QT_MOC_LITERAL(idx, ofs, len) \
 | 
			
		||||
    Q_STATIC_BYTE_ARRAY_DATA_HEADER_INITIALIZER_WITH_OFFSET(len, \
 | 
			
		||||
    qptrdiff(offsetof(qt_meta_stringdata_QDataManagementWidget_t, stringdata0) + ofs \
 | 
			
		||||
        - idx * sizeof(QByteArrayData)) \
 | 
			
		||||
    )
 | 
			
		||||
static const qt_meta_stringdata_QDataManagementWidget_t qt_meta_stringdata_QDataManagementWidget = {
 | 
			
		||||
    {
 | 
			
		||||
QT_MOC_LITERAL(0, 0, 21) // "QDataManagementWidget"
 | 
			
		||||
 | 
			
		||||
    },
 | 
			
		||||
    "QDataManagementWidget"
 | 
			
		||||
};
 | 
			
		||||
#undef QT_MOC_LITERAL
 | 
			
		||||
 | 
			
		||||
static const uint qt_meta_data_QDataManagementWidget[] = {
 | 
			
		||||
 | 
			
		||||
 // 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
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
void QDataManagementWidget::qt_static_metacall(QObject *_o, QMetaObject::Call _c, int _id, void **_a)
 | 
			
		||||
{
 | 
			
		||||
    Q_UNUSED(_o);
 | 
			
		||||
    Q_UNUSED(_id);
 | 
			
		||||
    Q_UNUSED(_c);
 | 
			
		||||
    Q_UNUSED(_a);
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
QT_INIT_METAOBJECT const QMetaObject QDataManagementWidget::staticMetaObject = { {
 | 
			
		||||
    &QWidget::staticMetaObject,
 | 
			
		||||
    qt_meta_stringdata_QDataManagementWidget.data,
 | 
			
		||||
    qt_meta_data_QDataManagementWidget,
 | 
			
		||||
    qt_static_metacall,
 | 
			
		||||
    nullptr,
 | 
			
		||||
    nullptr
 | 
			
		||||
} };
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
const QMetaObject *QDataManagementWidget::metaObject() const
 | 
			
		||||
{
 | 
			
		||||
    return QObject::d_ptr->metaObject ? QObject::d_ptr->dynamicMetaObject() : &staticMetaObject;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
void *QDataManagementWidget::qt_metacast(const char *_clname)
 | 
			
		||||
{
 | 
			
		||||
    if (!_clname) return nullptr;
 | 
			
		||||
    if (!strcmp(_clname, qt_meta_stringdata_QDataManagementWidget.stringdata0))
 | 
			
		||||
        return static_cast<void*>(this);
 | 
			
		||||
    return QWidget::qt_metacast(_clname);
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
int QDataManagementWidget::qt_metacall(QMetaObject::Call _c, int _id, void **_a)
 | 
			
		||||
{
 | 
			
		||||
    _id = QWidget::qt_metacall(_c, _id, _a);
 | 
			
		||||
    return _id;
 | 
			
		||||
}
 | 
			
		||||
QT_WARNING_POP
 | 
			
		||||
QT_END_MOC_NAMESPACE
 | 
			
		||||
@@ -0,0 +1,87 @@
 | 
			
		||||
/********************************************************************************
 | 
			
		||||
** Form generated from reading UI file 'QDataManagementWidget.ui'
 | 
			
		||||
**
 | 
			
		||||
** Created by: Qt User Interface Compiler version 5.13.1
 | 
			
		||||
**
 | 
			
		||||
** WARNING! All changes made in this file will be lost when recompiling UI file!
 | 
			
		||||
********************************************************************************/
 | 
			
		||||
 | 
			
		||||
#ifndef UI_QDATAMANAGEMENTWIDGET_H
 | 
			
		||||
#define UI_QDATAMANAGEMENTWIDGET_H
 | 
			
		||||
 | 
			
		||||
#include <QtCore/QVariant>
 | 
			
		||||
#include <QtWidgets/QApplication>
 | 
			
		||||
#include <QtWidgets/QGridLayout>
 | 
			
		||||
#include <QtWidgets/QTabWidget>
 | 
			
		||||
#include <QtWidgets/QWidget>
 | 
			
		||||
 | 
			
		||||
QT_BEGIN_NAMESPACE
 | 
			
		||||
 | 
			
		||||
class Ui_QDataManagementWidget
 | 
			
		||||
{
 | 
			
		||||
public:
 | 
			
		||||
    QWidget *gridLayoutWidget;
 | 
			
		||||
    QGridLayout *pLayoutMain;
 | 
			
		||||
    QTabWidget *tabWidget;
 | 
			
		||||
    QWidget *tab;
 | 
			
		||||
    QWidget *tab_2;
 | 
			
		||||
    QWidget *tab_3;
 | 
			
		||||
    QWidget *tab_4;
 | 
			
		||||
 | 
			
		||||
    void setupUi(QWidget *QDataManagementWidget)
 | 
			
		||||
    {
 | 
			
		||||
        if (QDataManagementWidget->objectName().isEmpty())
 | 
			
		||||
            QDataManagementWidget->setObjectName(QString::fromUtf8("QDataManagementWidget"));
 | 
			
		||||
        QDataManagementWidget->resize(759, 487);
 | 
			
		||||
        gridLayoutWidget = new QWidget(QDataManagementWidget);
 | 
			
		||||
        gridLayoutWidget->setObjectName(QString::fromUtf8("gridLayoutWidget"));
 | 
			
		||||
        gridLayoutWidget->setGeometry(QRect(30, 20, 681, 431));
 | 
			
		||||
        pLayoutMain = new QGridLayout(gridLayoutWidget);
 | 
			
		||||
        pLayoutMain->setSpacing(6);
 | 
			
		||||
        pLayoutMain->setContentsMargins(11, 11, 11, 11);
 | 
			
		||||
        pLayoutMain->setObjectName(QString::fromUtf8("pLayoutMain"));
 | 
			
		||||
        pLayoutMain->setContentsMargins(5, 5, 5, 0);
 | 
			
		||||
        tabWidget = new QTabWidget(gridLayoutWidget);
 | 
			
		||||
        tabWidget->setObjectName(QString::fromUtf8("tabWidget"));
 | 
			
		||||
        tab = new QWidget();
 | 
			
		||||
        tab->setObjectName(QString::fromUtf8("tab"));
 | 
			
		||||
        tabWidget->addTab(tab, QString());
 | 
			
		||||
        tab_2 = new QWidget();
 | 
			
		||||
        tab_2->setObjectName(QString::fromUtf8("tab_2"));
 | 
			
		||||
        tabWidget->addTab(tab_2, QString());
 | 
			
		||||
        tab_3 = new QWidget();
 | 
			
		||||
        tab_3->setObjectName(QString::fromUtf8("tab_3"));
 | 
			
		||||
        tabWidget->addTab(tab_3, QString());
 | 
			
		||||
        tab_4 = new QWidget();
 | 
			
		||||
        tab_4->setObjectName(QString::fromUtf8("tab_4"));
 | 
			
		||||
        tabWidget->addTab(tab_4, QString());
 | 
			
		||||
 | 
			
		||||
        pLayoutMain->addWidget(tabWidget, 0, 0, 1, 1);
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
        retranslateUi(QDataManagementWidget);
 | 
			
		||||
 | 
			
		||||
        tabWidget->setCurrentIndex(3);
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
        QMetaObject::connectSlotsByName(QDataManagementWidget);
 | 
			
		||||
    } // setupUi
 | 
			
		||||
 | 
			
		||||
    void retranslateUi(QWidget *QDataManagementWidget)
 | 
			
		||||
    {
 | 
			
		||||
        QDataManagementWidget->setWindowTitle(QCoreApplication::translate("QDataManagementWidget", "QDataManagementWidget", nullptr));
 | 
			
		||||
        tabWidget->setTabText(tabWidget->indexOf(tab), QCoreApplication::translate("QDataManagementWidget", "\350\275\246\345\225\206\344\270\232\347\273\251\350\241\250", nullptr));
 | 
			
		||||
        tabWidget->setTabText(tabWidget->indexOf(tab_2), QCoreApplication::translate("QDataManagementWidget", "\350\275\246\345\225\206\346\226\271\346\241\210\350\241\250", nullptr));
 | 
			
		||||
        tabWidget->setTabText(tabWidget->indexOf(tab_3), QCoreApplication::translate("QDataManagementWidget", "\351\200\201\350\277\224\344\277\256\345\267\245\345\215\225", nullptr));
 | 
			
		||||
        tabWidget->setTabText(tabWidget->indexOf(tab_4), QCoreApplication::translate("QDataManagementWidget", "\346\226\260\351\200\201\350\277\224\344\277\256\347\233\221\346\216\247\346\212\245\350\241\250", nullptr));
 | 
			
		||||
    } // retranslateUi
 | 
			
		||||
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
namespace Ui {
 | 
			
		||||
    class QDataManagementWidget: public Ui_QDataManagementWidget {};
 | 
			
		||||
} // namespace Ui
 | 
			
		||||
 | 
			
		||||
QT_END_NAMESPACE
 | 
			
		||||
 | 
			
		||||
#endif // UI_QDATAMANAGEMENTWIDGET_H
 | 
			
		||||
@@ -0,0 +1,95 @@
 | 
			
		||||
/****************************************************************************
 | 
			
		||||
** Meta object code from reading C++ file 'QRepairOrderWidget.h'
 | 
			
		||||
**
 | 
			
		||||
** Created by: The Qt Meta Object Compiler version 67 (Qt 5.13.1)
 | 
			
		||||
**
 | 
			
		||||
** WARNING! All changes made in this file will be lost!
 | 
			
		||||
*****************************************************************************/
 | 
			
		||||
 | 
			
		||||
#include <memory>
 | 
			
		||||
#include "../../../../../../../source/Widgets/ContentWidget/QRepairOrderWidget/QRepairOrderWidget.h"
 | 
			
		||||
#include <QtCore/qbytearray.h>
 | 
			
		||||
#include <QtCore/qmetatype.h>
 | 
			
		||||
#if !defined(Q_MOC_OUTPUT_REVISION)
 | 
			
		||||
#error "The header file 'QRepairOrderWidget.h' doesn't include <QObject>."
 | 
			
		||||
#elif Q_MOC_OUTPUT_REVISION != 67
 | 
			
		||||
#error "This file was generated using the moc from 5.13.1. It"
 | 
			
		||||
#error "cannot be used with the include files from this version of Qt."
 | 
			
		||||
#error "(The moc has changed too much.)"
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
QT_BEGIN_MOC_NAMESPACE
 | 
			
		||||
QT_WARNING_PUSH
 | 
			
		||||
QT_WARNING_DISABLE_DEPRECATED
 | 
			
		||||
struct qt_meta_stringdata_QRepairOrderWidget_t {
 | 
			
		||||
    QByteArrayData data[1];
 | 
			
		||||
    char stringdata0[19];
 | 
			
		||||
};
 | 
			
		||||
#define QT_MOC_LITERAL(idx, ofs, len) \
 | 
			
		||||
    Q_STATIC_BYTE_ARRAY_DATA_HEADER_INITIALIZER_WITH_OFFSET(len, \
 | 
			
		||||
    qptrdiff(offsetof(qt_meta_stringdata_QRepairOrderWidget_t, stringdata0) + ofs \
 | 
			
		||||
        - idx * sizeof(QByteArrayData)) \
 | 
			
		||||
    )
 | 
			
		||||
static const qt_meta_stringdata_QRepairOrderWidget_t qt_meta_stringdata_QRepairOrderWidget = {
 | 
			
		||||
    {
 | 
			
		||||
QT_MOC_LITERAL(0, 0, 18) // "QRepairOrderWidget"
 | 
			
		||||
 | 
			
		||||
    },
 | 
			
		||||
    "QRepairOrderWidget"
 | 
			
		||||
};
 | 
			
		||||
#undef QT_MOC_LITERAL
 | 
			
		||||
 | 
			
		||||
static const uint qt_meta_data_QRepairOrderWidget[] = {
 | 
			
		||||
 | 
			
		||||
 // 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
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
void QRepairOrderWidget::qt_static_metacall(QObject *_o, QMetaObject::Call _c, int _id, void **_a)
 | 
			
		||||
{
 | 
			
		||||
    Q_UNUSED(_o);
 | 
			
		||||
    Q_UNUSED(_id);
 | 
			
		||||
    Q_UNUSED(_c);
 | 
			
		||||
    Q_UNUSED(_a);
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
QT_INIT_METAOBJECT const QMetaObject QRepairOrderWidget::staticMetaObject = { {
 | 
			
		||||
    &QWidget::staticMetaObject,
 | 
			
		||||
    qt_meta_stringdata_QRepairOrderWidget.data,
 | 
			
		||||
    qt_meta_data_QRepairOrderWidget,
 | 
			
		||||
    qt_static_metacall,
 | 
			
		||||
    nullptr,
 | 
			
		||||
    nullptr
 | 
			
		||||
} };
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
const QMetaObject *QRepairOrderWidget::metaObject() const
 | 
			
		||||
{
 | 
			
		||||
    return QObject::d_ptr->metaObject ? QObject::d_ptr->dynamicMetaObject() : &staticMetaObject;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
void *QRepairOrderWidget::qt_metacast(const char *_clname)
 | 
			
		||||
{
 | 
			
		||||
    if (!_clname) return nullptr;
 | 
			
		||||
    if (!strcmp(_clname, qt_meta_stringdata_QRepairOrderWidget.stringdata0))
 | 
			
		||||
        return static_cast<void*>(this);
 | 
			
		||||
    return QWidget::qt_metacast(_clname);
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
int QRepairOrderWidget::qt_metacall(QMetaObject::Call _c, int _id, void **_a)
 | 
			
		||||
{
 | 
			
		||||
    _id = QWidget::qt_metacall(_c, _id, _a);
 | 
			
		||||
    return _id;
 | 
			
		||||
}
 | 
			
		||||
QT_WARNING_POP
 | 
			
		||||
QT_END_MOC_NAMESPACE
 | 
			
		||||
@@ -0,0 +1,46 @@
 | 
			
		||||
/********************************************************************************
 | 
			
		||||
** Form generated from reading UI file 'QRepairOrderWidget.ui'
 | 
			
		||||
**
 | 
			
		||||
** Created by: Qt User Interface Compiler version 5.13.1
 | 
			
		||||
**
 | 
			
		||||
** WARNING! All changes made in this file will be lost when recompiling UI file!
 | 
			
		||||
********************************************************************************/
 | 
			
		||||
 | 
			
		||||
#ifndef UI_QREPAIRORDERWIDGET_H
 | 
			
		||||
#define UI_QREPAIRORDERWIDGET_H
 | 
			
		||||
 | 
			
		||||
#include <QtCore/QVariant>
 | 
			
		||||
#include <QtWidgets/QApplication>
 | 
			
		||||
#include <QtWidgets/QWidget>
 | 
			
		||||
 | 
			
		||||
QT_BEGIN_NAMESPACE
 | 
			
		||||
 | 
			
		||||
class Ui_QRepairOrderWidget
 | 
			
		||||
{
 | 
			
		||||
public:
 | 
			
		||||
 | 
			
		||||
    void setupUi(QWidget *QRepairOrderWidget)
 | 
			
		||||
    {
 | 
			
		||||
        if (QRepairOrderWidget->objectName().isEmpty())
 | 
			
		||||
            QRepairOrderWidget->setObjectName(QString::fromUtf8("QRepairOrderWidget"));
 | 
			
		||||
        QRepairOrderWidget->resize(400, 300);
 | 
			
		||||
 | 
			
		||||
        retranslateUi(QRepairOrderWidget);
 | 
			
		||||
 | 
			
		||||
        QMetaObject::connectSlotsByName(QRepairOrderWidget);
 | 
			
		||||
    } // setupUi
 | 
			
		||||
 | 
			
		||||
    void retranslateUi(QWidget *QRepairOrderWidget)
 | 
			
		||||
    {
 | 
			
		||||
        QRepairOrderWidget->setWindowTitle(QCoreApplication::translate("QRepairOrderWidget", "QRepairOrderWidget", nullptr));
 | 
			
		||||
    } // retranslateUi
 | 
			
		||||
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
namespace Ui {
 | 
			
		||||
    class QRepairOrderWidget: public Ui_QRepairOrderWidget {};
 | 
			
		||||
} // namespace Ui
 | 
			
		||||
 | 
			
		||||
QT_END_NAMESPACE
 | 
			
		||||
 | 
			
		||||
#endif // UI_QREPAIRORDERWIDGET_H
 | 
			
		||||
@@ -0,0 +1,140 @@
 | 
			
		||||
/****************************************************************************
 | 
			
		||||
** Meta object code from reading C++ file 'QLoginDialog.h'
 | 
			
		||||
**
 | 
			
		||||
** Created by: The Qt Meta Object Compiler version 67 (Qt 5.13.1)
 | 
			
		||||
**
 | 
			
		||||
** WARNING! All changes made in this file will be lost!
 | 
			
		||||
*****************************************************************************/
 | 
			
		||||
 | 
			
		||||
#include <memory>
 | 
			
		||||
#include "../../../../../../source/widgets/LoginWidget/QLoginDialog.h"
 | 
			
		||||
#include <QtCore/qbytearray.h>
 | 
			
		||||
#include <QtCore/qmetatype.h>
 | 
			
		||||
#if !defined(Q_MOC_OUTPUT_REVISION)
 | 
			
		||||
#error "The header file 'QLoginDialog.h' doesn't include <QObject>."
 | 
			
		||||
#elif Q_MOC_OUTPUT_REVISION != 67
 | 
			
		||||
#error "This file was generated using the moc from 5.13.1. It"
 | 
			
		||||
#error "cannot be used with the include files from this version of Qt."
 | 
			
		||||
#error "(The moc has changed too much.)"
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
QT_BEGIN_MOC_NAMESPACE
 | 
			
		||||
QT_WARNING_PUSH
 | 
			
		||||
QT_WARNING_DISABLE_DEPRECATED
 | 
			
		||||
struct qt_meta_stringdata_QLoginDialog_t {
 | 
			
		||||
    QByteArrayData data[8];
 | 
			
		||||
    char stringdata0[63];
 | 
			
		||||
};
 | 
			
		||||
#define QT_MOC_LITERAL(idx, ofs, len) \
 | 
			
		||||
    Q_STATIC_BYTE_ARRAY_DATA_HEADER_INITIALIZER_WITH_OFFSET(len, \
 | 
			
		||||
    qptrdiff(offsetof(qt_meta_stringdata_QLoginDialog_t, stringdata0) + ofs \
 | 
			
		||||
        - idx * sizeof(QByteArrayData)) \
 | 
			
		||||
    )
 | 
			
		||||
static const qt_meta_stringdata_QLoginDialog_t qt_meta_stringdata_QLoginDialog = {
 | 
			
		||||
    {
 | 
			
		||||
QT_MOC_LITERAL(0, 0, 12), // "QLoginDialog"
 | 
			
		||||
QT_MOC_LITERAL(1, 13, 4), // "init"
 | 
			
		||||
QT_MOC_LITERAL(2, 18, 0), // ""
 | 
			
		||||
QT_MOC_LITERAL(3, 19, 8), // "initData"
 | 
			
		||||
QT_MOC_LITERAL(4, 28, 10), // "initSignal"
 | 
			
		||||
QT_MOC_LITERAL(5, 39, 11), // "initWidgets"
 | 
			
		||||
QT_MOC_LITERAL(6, 51, 4), // "onOK"
 | 
			
		||||
QT_MOC_LITERAL(7, 56, 6) // "onExit"
 | 
			
		||||
 | 
			
		||||
    },
 | 
			
		||||
    "QLoginDialog\0init\0\0initData\0initSignal\0"
 | 
			
		||||
    "initWidgets\0onOK\0onExit"
 | 
			
		||||
};
 | 
			
		||||
#undef QT_MOC_LITERAL
 | 
			
		||||
 | 
			
		||||
static const uint qt_meta_data_QLoginDialog[] = {
 | 
			
		||||
 | 
			
		||||
 // content:
 | 
			
		||||
       8,       // revision
 | 
			
		||||
       0,       // classname
 | 
			
		||||
       0,    0, // classinfo
 | 
			
		||||
       6,   14, // methods
 | 
			
		||||
       0,    0, // properties
 | 
			
		||||
       0,    0, // enums/sets
 | 
			
		||||
       0,    0, // constructors
 | 
			
		||||
       0,       // flags
 | 
			
		||||
       0,       // signalCount
 | 
			
		||||
 | 
			
		||||
 // slots: name, argc, parameters, tag, flags
 | 
			
		||||
       1,    0,   44,    2, 0x09 /* Protected */,
 | 
			
		||||
       3,    0,   45,    2, 0x09 /* Protected */,
 | 
			
		||||
       4,    0,   46,    2, 0x09 /* Protected */,
 | 
			
		||||
       5,    0,   47,    2, 0x09 /* Protected */,
 | 
			
		||||
       6,    0,   48,    2, 0x09 /* Protected */,
 | 
			
		||||
       7,    0,   49,    2, 0x09 /* Protected */,
 | 
			
		||||
 | 
			
		||||
 // slots: parameters
 | 
			
		||||
    QMetaType::Void,
 | 
			
		||||
    QMetaType::Void,
 | 
			
		||||
    QMetaType::Void,
 | 
			
		||||
    QMetaType::Void,
 | 
			
		||||
    QMetaType::Void,
 | 
			
		||||
    QMetaType::Void,
 | 
			
		||||
 | 
			
		||||
       0        // eod
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
void QLoginDialog::qt_static_metacall(QObject *_o, QMetaObject::Call _c, int _id, void **_a)
 | 
			
		||||
{
 | 
			
		||||
    if (_c == QMetaObject::InvokeMetaMethod) {
 | 
			
		||||
        auto *_t = static_cast<QLoginDialog *>(_o);
 | 
			
		||||
        Q_UNUSED(_t)
 | 
			
		||||
        switch (_id) {
 | 
			
		||||
        case 0: _t->init(); break;
 | 
			
		||||
        case 1: _t->initData(); break;
 | 
			
		||||
        case 2: _t->initSignal(); break;
 | 
			
		||||
        case 3: _t->initWidgets(); break;
 | 
			
		||||
        case 4: _t->onOK(); break;
 | 
			
		||||
        case 5: _t->onExit(); break;
 | 
			
		||||
        default: ;
 | 
			
		||||
        }
 | 
			
		||||
    }
 | 
			
		||||
    Q_UNUSED(_a);
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
QT_INIT_METAOBJECT const QMetaObject QLoginDialog::staticMetaObject = { {
 | 
			
		||||
    &QDialog::staticMetaObject,
 | 
			
		||||
    qt_meta_stringdata_QLoginDialog.data,
 | 
			
		||||
    qt_meta_data_QLoginDialog,
 | 
			
		||||
    qt_static_metacall,
 | 
			
		||||
    nullptr,
 | 
			
		||||
    nullptr
 | 
			
		||||
} };
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
const QMetaObject *QLoginDialog::metaObject() const
 | 
			
		||||
{
 | 
			
		||||
    return QObject::d_ptr->metaObject ? QObject::d_ptr->dynamicMetaObject() : &staticMetaObject;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
void *QLoginDialog::qt_metacast(const char *_clname)
 | 
			
		||||
{
 | 
			
		||||
    if (!_clname) return nullptr;
 | 
			
		||||
    if (!strcmp(_clname, qt_meta_stringdata_QLoginDialog.stringdata0))
 | 
			
		||||
        return static_cast<void*>(this);
 | 
			
		||||
    return QDialog::qt_metacast(_clname);
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
int QLoginDialog::qt_metacall(QMetaObject::Call _c, int _id, void **_a)
 | 
			
		||||
{
 | 
			
		||||
    _id = QDialog::qt_metacall(_c, _id, _a);
 | 
			
		||||
    if (_id < 0)
 | 
			
		||||
        return _id;
 | 
			
		||||
    if (_c == QMetaObject::InvokeMetaMethod) {
 | 
			
		||||
        if (_id < 6)
 | 
			
		||||
            qt_static_metacall(this, _c, _id, _a);
 | 
			
		||||
        _id -= 6;
 | 
			
		||||
    } else if (_c == QMetaObject::RegisterMethodArgumentMetaType) {
 | 
			
		||||
        if (_id < 6)
 | 
			
		||||
            *reinterpret_cast<int*>(_a[0]) = -1;
 | 
			
		||||
        _id -= 6;
 | 
			
		||||
    }
 | 
			
		||||
    return _id;
 | 
			
		||||
}
 | 
			
		||||
QT_WARNING_POP
 | 
			
		||||
QT_END_MOC_NAMESPACE
 | 
			
		||||
@@ -0,0 +1,197 @@
 | 
			
		||||
/********************************************************************************
 | 
			
		||||
** Form generated from reading UI file 'QLoginDialog.ui'
 | 
			
		||||
**
 | 
			
		||||
** Created by: Qt User Interface Compiler version 5.13.1
 | 
			
		||||
**
 | 
			
		||||
** WARNING! All changes made in this file will be lost when recompiling UI file!
 | 
			
		||||
********************************************************************************/
 | 
			
		||||
 | 
			
		||||
#ifndef UI_QLOGINDIALOG_H
 | 
			
		||||
#define UI_QLOGINDIALOG_H
 | 
			
		||||
 | 
			
		||||
#include <QtCore/QVariant>
 | 
			
		||||
#include <QtGui/QIcon>
 | 
			
		||||
#include <QtWidgets/QApplication>
 | 
			
		||||
#include <QtWidgets/QDialog>
 | 
			
		||||
#include <QtWidgets/QGridLayout>
 | 
			
		||||
#include <QtWidgets/QGroupBox>
 | 
			
		||||
#include <QtWidgets/QHBoxLayout>
 | 
			
		||||
#include <QtWidgets/QLabel>
 | 
			
		||||
#include <QtWidgets/QLineEdit>
 | 
			
		||||
#include <QtWidgets/QSpacerItem>
 | 
			
		||||
#include <QtWidgets/QToolButton>
 | 
			
		||||
#include <QtWidgets/QVBoxLayout>
 | 
			
		||||
#include <QtWidgets/QWidget>
 | 
			
		||||
 | 
			
		||||
QT_BEGIN_NAMESPACE
 | 
			
		||||
 | 
			
		||||
class Ui_QLoginDialog
 | 
			
		||||
{
 | 
			
		||||
public:
 | 
			
		||||
    QWidget *layoutWidget;
 | 
			
		||||
    QVBoxLayout *pLayoutMain;
 | 
			
		||||
    QHBoxLayout *horizontalLayout;
 | 
			
		||||
    QLabel *label;
 | 
			
		||||
    QGroupBox *groupBox;
 | 
			
		||||
    QGridLayout *gridLayout;
 | 
			
		||||
    QLabel *label_2;
 | 
			
		||||
    QLineEdit *pEditSystemUserName;
 | 
			
		||||
    QLabel *label_3;
 | 
			
		||||
    QLineEdit *pEditUserName;
 | 
			
		||||
    QLabel *label_4;
 | 
			
		||||
    QLineEdit *pEditStaffPost;
 | 
			
		||||
    QHBoxLayout *horizontalLayout_2;
 | 
			
		||||
    QSpacerItem *horizontalSpacer;
 | 
			
		||||
    QToolButton *pButtonExit;
 | 
			
		||||
    QToolButton *pButtonOK;
 | 
			
		||||
 | 
			
		||||
    void setupUi(QDialog *QLoginDialog)
 | 
			
		||||
    {
 | 
			
		||||
        if (QLoginDialog->objectName().isEmpty())
 | 
			
		||||
            QLoginDialog->setObjectName(QString::fromUtf8("QLoginDialog"));
 | 
			
		||||
        QLoginDialog->resize(350, 160);
 | 
			
		||||
        QLoginDialog->setMinimumSize(QSize(350, 160));
 | 
			
		||||
        QLoginDialog->setMaximumSize(QSize(350, 160));
 | 
			
		||||
        QIcon icon;
 | 
			
		||||
        icon.addFile(QString::fromUtf8(":/QMainFrame/Resources/CPIC\351\200\217\346\230\216.png"), QSize(), QIcon::Normal, QIcon::On);
 | 
			
		||||
        QLoginDialog->setWindowIcon(icon);
 | 
			
		||||
        layoutWidget = new QWidget(QLoginDialog);
 | 
			
		||||
        layoutWidget->setObjectName(QString::fromUtf8("layoutWidget"));
 | 
			
		||||
        layoutWidget->setGeometry(QRect(0, 0, 349, 158));
 | 
			
		||||
        pLayoutMain = new QVBoxLayout(layoutWidget);
 | 
			
		||||
        pLayoutMain->setSpacing(6);
 | 
			
		||||
        pLayoutMain->setContentsMargins(11, 11, 11, 11);
 | 
			
		||||
        pLayoutMain->setObjectName(QString::fromUtf8("pLayoutMain"));
 | 
			
		||||
        pLayoutMain->setContentsMargins(5, 5, 5, 5);
 | 
			
		||||
        horizontalLayout = new QHBoxLayout();
 | 
			
		||||
        horizontalLayout->setSpacing(6);
 | 
			
		||||
        horizontalLayout->setObjectName(QString::fromUtf8("horizontalLayout"));
 | 
			
		||||
        label = new QLabel(layoutWidget);
 | 
			
		||||
        label->setObjectName(QString::fromUtf8("label"));
 | 
			
		||||
        label->setPixmap(QPixmap(QString::fromUtf8(":/QMainFrame/Resources/cat.png")));
 | 
			
		||||
 | 
			
		||||
        horizontalLayout->addWidget(label);
 | 
			
		||||
 | 
			
		||||
        groupBox = new QGroupBox(layoutWidget);
 | 
			
		||||
        groupBox->setObjectName(QString::fromUtf8("groupBox"));
 | 
			
		||||
        gridLayout = new QGridLayout(groupBox);
 | 
			
		||||
        gridLayout->setSpacing(6);
 | 
			
		||||
        gridLayout->setContentsMargins(11, 11, 11, 11);
 | 
			
		||||
        gridLayout->setObjectName(QString::fromUtf8("gridLayout"));
 | 
			
		||||
        label_2 = new QLabel(groupBox);
 | 
			
		||||
        label_2->setObjectName(QString::fromUtf8("label_2"));
 | 
			
		||||
        label_2->setMinimumSize(QSize(85, 0));
 | 
			
		||||
        label_2->setMaximumSize(QSize(85, 16777215));
 | 
			
		||||
        label_2->setAlignment(Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter);
 | 
			
		||||
 | 
			
		||||
        gridLayout->addWidget(label_2, 0, 0, 1, 1);
 | 
			
		||||
 | 
			
		||||
        pEditSystemUserName = new QLineEdit(groupBox);
 | 
			
		||||
        pEditSystemUserName->setObjectName(QString::fromUtf8("pEditSystemUserName"));
 | 
			
		||||
        pEditSystemUserName->setMinimumSize(QSize(120, 0));
 | 
			
		||||
        pEditSystemUserName->setMaximumSize(QSize(120, 16777215));
 | 
			
		||||
        pEditSystemUserName->setStyleSheet(QString::fromUtf8("border: 1px solid silver;"));
 | 
			
		||||
        pEditSystemUserName->setAlignment(Qt::AlignCenter);
 | 
			
		||||
        pEditSystemUserName->setReadOnly(true);
 | 
			
		||||
 | 
			
		||||
        gridLayout->addWidget(pEditSystemUserName, 0, 1, 1, 1);
 | 
			
		||||
 | 
			
		||||
        label_3 = new QLabel(groupBox);
 | 
			
		||||
        label_3->setObjectName(QString::fromUtf8("label_3"));
 | 
			
		||||
        label_3->setMinimumSize(QSize(85, 0));
 | 
			
		||||
        label_3->setMaximumSize(QSize(85, 16777215));
 | 
			
		||||
        label_3->setAlignment(Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter);
 | 
			
		||||
 | 
			
		||||
        gridLayout->addWidget(label_3, 1, 0, 1, 1);
 | 
			
		||||
 | 
			
		||||
        pEditUserName = new QLineEdit(groupBox);
 | 
			
		||||
        pEditUserName->setObjectName(QString::fromUtf8("pEditUserName"));
 | 
			
		||||
        pEditUserName->setMinimumSize(QSize(120, 0));
 | 
			
		||||
        pEditUserName->setMaximumSize(QSize(120, 16777215));
 | 
			
		||||
        pEditUserName->setStyleSheet(QString::fromUtf8("border: 1px solid silver;"));
 | 
			
		||||
        pEditUserName->setAlignment(Qt::AlignCenter);
 | 
			
		||||
        pEditUserName->setReadOnly(true);
 | 
			
		||||
 | 
			
		||||
        gridLayout->addWidget(pEditUserName, 1, 1, 1, 1);
 | 
			
		||||
 | 
			
		||||
        label_4 = new QLabel(groupBox);
 | 
			
		||||
        label_4->setObjectName(QString::fromUtf8("label_4"));
 | 
			
		||||
        label_4->setMinimumSize(QSize(85, 0));
 | 
			
		||||
        label_4->setMaximumSize(QSize(85, 16777215));
 | 
			
		||||
        label_4->setAlignment(Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter);
 | 
			
		||||
 | 
			
		||||
        gridLayout->addWidget(label_4, 2, 0, 1, 1);
 | 
			
		||||
 | 
			
		||||
        pEditStaffPost = new QLineEdit(groupBox);
 | 
			
		||||
        pEditStaffPost->setObjectName(QString::fromUtf8("pEditStaffPost"));
 | 
			
		||||
        pEditStaffPost->setMinimumSize(QSize(120, 0));
 | 
			
		||||
        pEditStaffPost->setMaximumSize(QSize(120, 16777215));
 | 
			
		||||
        pEditStaffPost->setStyleSheet(QString::fromUtf8("border: 1px solid silver;"));
 | 
			
		||||
        pEditStaffPost->setAlignment(Qt::AlignCenter);
 | 
			
		||||
        pEditStaffPost->setReadOnly(true);
 | 
			
		||||
 | 
			
		||||
        gridLayout->addWidget(pEditStaffPost, 2, 1, 1, 1);
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
        horizontalLayout->addWidget(groupBox);
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
        pLayoutMain->addLayout(horizontalLayout);
 | 
			
		||||
 | 
			
		||||
        horizontalLayout_2 = new QHBoxLayout();
 | 
			
		||||
        horizontalLayout_2->setSpacing(6);
 | 
			
		||||
        horizontalLayout_2->setObjectName(QString::fromUtf8("horizontalLayout_2"));
 | 
			
		||||
        horizontalSpacer = new QSpacerItem(40, 20, QSizePolicy::Expanding, QSizePolicy::Minimum);
 | 
			
		||||
 | 
			
		||||
        horizontalLayout_2->addItem(horizontalSpacer);
 | 
			
		||||
 | 
			
		||||
        pButtonExit = new QToolButton(layoutWidget);
 | 
			
		||||
        pButtonExit->setObjectName(QString::fromUtf8("pButtonExit"));
 | 
			
		||||
        QIcon icon1;
 | 
			
		||||
        icon1.addFile(QString::fromUtf8(":/QMainFrame/Resources/quit.png"), QSize(), QIcon::Normal, QIcon::On);
 | 
			
		||||
        pButtonExit->setIcon(icon1);
 | 
			
		||||
        pButtonExit->setIconSize(QSize(32, 32));
 | 
			
		||||
        pButtonExit->setToolButtonStyle(Qt::ToolButtonTextBesideIcon);
 | 
			
		||||
 | 
			
		||||
        horizontalLayout_2->addWidget(pButtonExit);
 | 
			
		||||
 | 
			
		||||
        pButtonOK = new QToolButton(layoutWidget);
 | 
			
		||||
        pButtonOK->setObjectName(QString::fromUtf8("pButtonOK"));
 | 
			
		||||
        QIcon icon2;
 | 
			
		||||
        icon2.addFile(QString::fromUtf8(":/QMainFrame/Resources/ok.png"), QSize(), QIcon::Normal, QIcon::On);
 | 
			
		||||
        pButtonOK->setIcon(icon2);
 | 
			
		||||
        pButtonOK->setIconSize(QSize(32, 32));
 | 
			
		||||
        pButtonOK->setToolButtonStyle(Qt::ToolButtonTextBesideIcon);
 | 
			
		||||
 | 
			
		||||
        horizontalLayout_2->addWidget(pButtonOK);
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
        pLayoutMain->addLayout(horizontalLayout_2);
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
        retranslateUi(QLoginDialog);
 | 
			
		||||
 | 
			
		||||
        QMetaObject::connectSlotsByName(QLoginDialog);
 | 
			
		||||
    } // setupUi
 | 
			
		||||
 | 
			
		||||
    void retranslateUi(QDialog *QLoginDialog)
 | 
			
		||||
    {
 | 
			
		||||
        QLoginDialog->setWindowTitle(QCoreApplication::translate("QLoginDialog", "\347\214\234\347\214\234\344\275\240\346\230\257\350\260\201~~~~", nullptr));
 | 
			
		||||
        label->setText(QString());
 | 
			
		||||
        groupBox->setTitle(QCoreApplication::translate("QLoginDialog", "\344\272\272\345\221\230\344\277\241\346\201\257\357\274\232", nullptr));
 | 
			
		||||
        label_2->setText(QCoreApplication::translate("QLoginDialog", "\347\263\273\347\273\237\347\224\250\346\210\267\345\220\215\357\274\232", nullptr));
 | 
			
		||||
        label_3->setText(QCoreApplication::translate("QLoginDialog", "\344\272\272\345\221\230\345\220\215\347\247\260\357\274\232", nullptr));
 | 
			
		||||
        label_4->setText(QCoreApplication::translate("QLoginDialog", "\345\262\227\344\275\215\357\274\232", nullptr));
 | 
			
		||||
        pButtonExit->setText(QCoreApplication::translate("QLoginDialog", "\351\200\200\345\207\272", nullptr));
 | 
			
		||||
        pButtonOK->setText(QCoreApplication::translate("QLoginDialog", "\347\241\256\350\256\244", nullptr));
 | 
			
		||||
    } // retranslateUi
 | 
			
		||||
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
namespace Ui {
 | 
			
		||||
    class QLoginDialog: public Ui_QLoginDialog {};
 | 
			
		||||
} // namespace Ui
 | 
			
		||||
 | 
			
		||||
QT_END_NAMESPACE
 | 
			
		||||
 | 
			
		||||
#endif // UI_QLOGINDIALOG_H
 | 
			
		||||
@@ -0,0 +1,95 @@
 | 
			
		||||
/****************************************************************************
 | 
			
		||||
** Meta object code from reading C++ file 'QMainFrame.h'
 | 
			
		||||
**
 | 
			
		||||
** Created by: The Qt Meta Object Compiler version 67 (Qt 5.13.1)
 | 
			
		||||
**
 | 
			
		||||
** WARNING! All changes made in this file will be lost!
 | 
			
		||||
*****************************************************************************/
 | 
			
		||||
 | 
			
		||||
#include <memory>
 | 
			
		||||
#include "../../../../../../source/Widgets/MainFrame/QMainFrame.h"
 | 
			
		||||
#include <QtCore/qbytearray.h>
 | 
			
		||||
#include <QtCore/qmetatype.h>
 | 
			
		||||
#if !defined(Q_MOC_OUTPUT_REVISION)
 | 
			
		||||
#error "The header file 'QMainFrame.h' doesn't include <QObject>."
 | 
			
		||||
#elif Q_MOC_OUTPUT_REVISION != 67
 | 
			
		||||
#error "This file was generated using the moc from 5.13.1. It"
 | 
			
		||||
#error "cannot be used with the include files from this version of Qt."
 | 
			
		||||
#error "(The moc has changed too much.)"
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
QT_BEGIN_MOC_NAMESPACE
 | 
			
		||||
QT_WARNING_PUSH
 | 
			
		||||
QT_WARNING_DISABLE_DEPRECATED
 | 
			
		||||
struct qt_meta_stringdata_QMainFrame_t {
 | 
			
		||||
    QByteArrayData data[1];
 | 
			
		||||
    char stringdata0[11];
 | 
			
		||||
};
 | 
			
		||||
#define QT_MOC_LITERAL(idx, ofs, len) \
 | 
			
		||||
    Q_STATIC_BYTE_ARRAY_DATA_HEADER_INITIALIZER_WITH_OFFSET(len, \
 | 
			
		||||
    qptrdiff(offsetof(qt_meta_stringdata_QMainFrame_t, stringdata0) + ofs \
 | 
			
		||||
        - idx * sizeof(QByteArrayData)) \
 | 
			
		||||
    )
 | 
			
		||||
static const qt_meta_stringdata_QMainFrame_t qt_meta_stringdata_QMainFrame = {
 | 
			
		||||
    {
 | 
			
		||||
QT_MOC_LITERAL(0, 0, 10) // "QMainFrame"
 | 
			
		||||
 | 
			
		||||
    },
 | 
			
		||||
    "QMainFrame"
 | 
			
		||||
};
 | 
			
		||||
#undef QT_MOC_LITERAL
 | 
			
		||||
 | 
			
		||||
static const uint qt_meta_data_QMainFrame[] = {
 | 
			
		||||
 | 
			
		||||
 // 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
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
void QMainFrame::qt_static_metacall(QObject *_o, QMetaObject::Call _c, int _id, void **_a)
 | 
			
		||||
{
 | 
			
		||||
    Q_UNUSED(_o);
 | 
			
		||||
    Q_UNUSED(_id);
 | 
			
		||||
    Q_UNUSED(_c);
 | 
			
		||||
    Q_UNUSED(_a);
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
QT_INIT_METAOBJECT const QMetaObject QMainFrame::staticMetaObject = { {
 | 
			
		||||
    &QMainWindow::staticMetaObject,
 | 
			
		||||
    qt_meta_stringdata_QMainFrame.data,
 | 
			
		||||
    qt_meta_data_QMainFrame,
 | 
			
		||||
    qt_static_metacall,
 | 
			
		||||
    nullptr,
 | 
			
		||||
    nullptr
 | 
			
		||||
} };
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
const QMetaObject *QMainFrame::metaObject() const
 | 
			
		||||
{
 | 
			
		||||
    return QObject::d_ptr->metaObject ? QObject::d_ptr->dynamicMetaObject() : &staticMetaObject;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
void *QMainFrame::qt_metacast(const char *_clname)
 | 
			
		||||
{
 | 
			
		||||
    if (!_clname) return nullptr;
 | 
			
		||||
    if (!strcmp(_clname, qt_meta_stringdata_QMainFrame.stringdata0))
 | 
			
		||||
        return static_cast<void*>(this);
 | 
			
		||||
    return QMainWindow::qt_metacast(_clname);
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
int QMainFrame::qt_metacall(QMetaObject::Call _c, int _id, void **_a)
 | 
			
		||||
{
 | 
			
		||||
    _id = QMainWindow::qt_metacall(_c, _id, _a);
 | 
			
		||||
    return _id;
 | 
			
		||||
}
 | 
			
		||||
QT_WARNING_POP
 | 
			
		||||
QT_END_MOC_NAMESPACE
 | 
			
		||||
@@ -0,0 +1,113 @@
 | 
			
		||||
/********************************************************************************
 | 
			
		||||
** Form generated from reading UI file 'QMainFrame.ui'
 | 
			
		||||
**
 | 
			
		||||
** Created by: Qt User Interface Compiler version 5.13.1
 | 
			
		||||
**
 | 
			
		||||
** WARNING! All changes made in this file will be lost when recompiling UI file!
 | 
			
		||||
********************************************************************************/
 | 
			
		||||
 | 
			
		||||
#ifndef UI_QMAINFRAME_H
 | 
			
		||||
#define UI_QMAINFRAME_H
 | 
			
		||||
 | 
			
		||||
#include <QtCore/QVariant>
 | 
			
		||||
#include <QtWidgets/QAction>
 | 
			
		||||
#include <QtWidgets/QApplication>
 | 
			
		||||
#include <QtWidgets/QMainWindow>
 | 
			
		||||
#include <QtWidgets/QMenu>
 | 
			
		||||
#include <QtWidgets/QMenuBar>
 | 
			
		||||
#include <QtWidgets/QStatusBar>
 | 
			
		||||
#include <QtWidgets/QToolBar>
 | 
			
		||||
#include <QtWidgets/QWidget>
 | 
			
		||||
 | 
			
		||||
QT_BEGIN_NAMESPACE
 | 
			
		||||
 | 
			
		||||
class Ui_QMainFrameClass
 | 
			
		||||
{
 | 
			
		||||
public:
 | 
			
		||||
    QAction *pActionExit;
 | 
			
		||||
    QAction *pActionAbout;
 | 
			
		||||
    QAction *pActionDataManagement;
 | 
			
		||||
    QAction *pActionParamentersManagement;
 | 
			
		||||
    QWidget *centralWidget;
 | 
			
		||||
    QMenuBar *menuBar;
 | 
			
		||||
    QMenu *menu;
 | 
			
		||||
    QMenu *menu_2;
 | 
			
		||||
    QToolBar *mainToolBar;
 | 
			
		||||
    QStatusBar *statusBar;
 | 
			
		||||
 | 
			
		||||
    void setupUi(QMainWindow *QMainFrameClass)
 | 
			
		||||
    {
 | 
			
		||||
        if (QMainFrameClass->objectName().isEmpty())
 | 
			
		||||
            QMainFrameClass->setObjectName(QString::fromUtf8("QMainFrameClass"));
 | 
			
		||||
        QMainFrameClass->resize(796, 558);
 | 
			
		||||
        pActionExit = new QAction(QMainFrameClass);
 | 
			
		||||
        pActionExit->setObjectName(QString::fromUtf8("pActionExit"));
 | 
			
		||||
        QIcon icon;
 | 
			
		||||
        icon.addFile(QString::fromUtf8(":/QMainFrame/Resources/quit.png"), QSize(), QIcon::Normal, QIcon::Off);
 | 
			
		||||
        pActionExit->setIcon(icon);
 | 
			
		||||
        pActionAbout = new QAction(QMainFrameClass);
 | 
			
		||||
        pActionAbout->setObjectName(QString::fromUtf8("pActionAbout"));
 | 
			
		||||
        QIcon icon1;
 | 
			
		||||
        icon1.addFile(QString::fromUtf8(":/QMainFrame/Resources/cat.png"), QSize(), QIcon::Normal, QIcon::Off);
 | 
			
		||||
        pActionAbout->setIcon(icon1);
 | 
			
		||||
        pActionDataManagement = new QAction(QMainFrameClass);
 | 
			
		||||
        pActionDataManagement->setObjectName(QString::fromUtf8("pActionDataManagement"));
 | 
			
		||||
        QIcon icon2;
 | 
			
		||||
        icon2.addFile(QString::fromUtf8(":/QMainFrame/Resources/excel.png"), QSize(), QIcon::Normal, QIcon::Off);
 | 
			
		||||
        pActionDataManagement->setIcon(icon2);
 | 
			
		||||
        pActionParamentersManagement = new QAction(QMainFrameClass);
 | 
			
		||||
        pActionParamentersManagement->setObjectName(QString::fromUtf8("pActionParamentersManagement"));
 | 
			
		||||
        QIcon icon3;
 | 
			
		||||
        icon3.addFile(QString::fromUtf8(":/QMainFrame/Resources/option.png"), QSize(), QIcon::Normal, QIcon::Off);
 | 
			
		||||
        pActionParamentersManagement->setIcon(icon3);
 | 
			
		||||
        centralWidget = new QWidget(QMainFrameClass);
 | 
			
		||||
        centralWidget->setObjectName(QString::fromUtf8("centralWidget"));
 | 
			
		||||
        QMainFrameClass->setCentralWidget(centralWidget);
 | 
			
		||||
        menuBar = new QMenuBar(QMainFrameClass);
 | 
			
		||||
        menuBar->setObjectName(QString::fromUtf8("menuBar"));
 | 
			
		||||
        menuBar->setGeometry(QRect(0, 0, 796, 23));
 | 
			
		||||
        menu = new QMenu(menuBar);
 | 
			
		||||
        menu->setObjectName(QString::fromUtf8("menu"));
 | 
			
		||||
        menu_2 = new QMenu(menuBar);
 | 
			
		||||
        menu_2->setObjectName(QString::fromUtf8("menu_2"));
 | 
			
		||||
        QMainFrameClass->setMenuBar(menuBar);
 | 
			
		||||
        mainToolBar = new QToolBar(QMainFrameClass);
 | 
			
		||||
        mainToolBar->setObjectName(QString::fromUtf8("mainToolBar"));
 | 
			
		||||
        mainToolBar->setIconSize(QSize(36, 36));
 | 
			
		||||
        QMainFrameClass->addToolBar(Qt::TopToolBarArea, mainToolBar);
 | 
			
		||||
        statusBar = new QStatusBar(QMainFrameClass);
 | 
			
		||||
        statusBar->setObjectName(QString::fromUtf8("statusBar"));
 | 
			
		||||
        QMainFrameClass->setStatusBar(statusBar);
 | 
			
		||||
 | 
			
		||||
        menuBar->addAction(menu->menuAction());
 | 
			
		||||
        menuBar->addAction(menu_2->menuAction());
 | 
			
		||||
        menu->addAction(pActionExit);
 | 
			
		||||
        menu_2->addAction(pActionAbout);
 | 
			
		||||
        mainToolBar->addAction(pActionDataManagement);
 | 
			
		||||
        mainToolBar->addAction(pActionParamentersManagement);
 | 
			
		||||
 | 
			
		||||
        retranslateUi(QMainFrameClass);
 | 
			
		||||
 | 
			
		||||
        QMetaObject::connectSlotsByName(QMainFrameClass);
 | 
			
		||||
    } // setupUi
 | 
			
		||||
 | 
			
		||||
    void retranslateUi(QMainWindow *QMainFrameClass)
 | 
			
		||||
    {
 | 
			
		||||
        QMainFrameClass->setWindowTitle(QCoreApplication::translate("QMainFrameClass", "QMainFrame", nullptr));
 | 
			
		||||
        pActionExit->setText(QCoreApplication::translate("QMainFrameClass", "\351\200\200\345\207\272", nullptr));
 | 
			
		||||
        pActionAbout->setText(QCoreApplication::translate("QMainFrameClass", "\345\205\263\344\272\216", nullptr));
 | 
			
		||||
        pActionDataManagement->setText(QCoreApplication::translate("QMainFrameClass", "\346\225\260\346\215\256\347\256\241\347\220\206", nullptr));
 | 
			
		||||
        pActionParamentersManagement->setText(QCoreApplication::translate("QMainFrameClass", "\345\217\202\346\225\260\347\256\241\347\220\206", nullptr));
 | 
			
		||||
        menu->setTitle(QCoreApplication::translate("QMainFrameClass", "\347\263\273\347\273\237", nullptr));
 | 
			
		||||
        menu_2->setTitle(QCoreApplication::translate("QMainFrameClass", "\345\270\256\345\212\251", nullptr));
 | 
			
		||||
    } // retranslateUi
 | 
			
		||||
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
namespace Ui {
 | 
			
		||||
    class QMainFrameClass: public Ui_QMainFrameClass {};
 | 
			
		||||
} // namespace Ui
 | 
			
		||||
 | 
			
		||||
QT_END_NAMESPACE
 | 
			
		||||
 | 
			
		||||
#endif // UI_QMAINFRAME_H
 | 
			
		||||
							
								
								
									
										26
									
								
								code/cpp/car_dealer_util/proj/vs2019/车商渠道数据管理.sln
									
									
									
									
									
										Normal file
									
								
							
							
						
						@@ -0,0 +1,26 @@
 | 
			
		||||
 | 
			
		||||
Microsoft Visual Studio Solution File, Format Version 12.00
 | 
			
		||||
# Visual Studio Version 16
 | 
			
		||||
VisualStudioVersion = 16.0.29609.76
 | 
			
		||||
MinimumVisualStudioVersion = 10.0.40219.1
 | 
			
		||||
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "car_dealer_util", "car_dealer_util\car_dealer_util.vcxproj", "{B12702AD-ABFB-343A-A199-8E24837244A3}"
 | 
			
		||||
EndProject
 | 
			
		||||
Global
 | 
			
		||||
	GlobalSection(SolutionConfigurationPlatforms) = preSolution
 | 
			
		||||
		Debug|x64 = Debug|x64
 | 
			
		||||
		Release|x64 = Release|x64
 | 
			
		||||
	EndGlobalSection
 | 
			
		||||
	GlobalSection(ProjectConfigurationPlatforms) = postSolution
 | 
			
		||||
		{B12702AD-ABFB-343A-A199-8E24837244A3}.Debug|x64.ActiveCfg = Debug|x64
 | 
			
		||||
		{B12702AD-ABFB-343A-A199-8E24837244A3}.Debug|x64.Build.0 = Debug|x64
 | 
			
		||||
		{B12702AD-ABFB-343A-A199-8E24837244A3}.Release|x64.ActiveCfg = Release|x64
 | 
			
		||||
		{B12702AD-ABFB-343A-A199-8E24837244A3}.Release|x64.Build.0 = Release|x64
 | 
			
		||||
	EndGlobalSection
 | 
			
		||||
	GlobalSection(SolutionProperties) = preSolution
 | 
			
		||||
		HideSolutionNode = FALSE
 | 
			
		||||
	EndGlobalSection
 | 
			
		||||
	GlobalSection(ExtensibilityGlobals) = postSolution
 | 
			
		||||
		SolutionGuid = {7A1F667A-8FB5-4B18-8D74-E810D205DFA9}
 | 
			
		||||
		Qt5Version = 5.13.1_msvc2017_x64
 | 
			
		||||
	EndGlobalSection
 | 
			
		||||
EndGlobal
 | 
			
		||||
@@ -0,0 +1,4 @@
 | 
			
		||||
 | 
			
		||||
#include "AppParameters.h"
 | 
			
		||||
 | 
			
		||||
UserInfo * pStaffInfo = nullptr;
 | 
			
		||||
@@ -0,0 +1,7 @@
 | 
			
		||||
 | 
			
		||||
#pragma once
 | 
			
		||||
 | 
			
		||||
#include <iostream>
 | 
			
		||||
#include "../Datastructure/UserInfo/UserInfo.h"
 | 
			
		||||
 | 
			
		||||
extern UserInfo * pStaffInfo;
 | 
			
		||||
@@ -0,0 +1,10 @@
 | 
			
		||||
 | 
			
		||||
#include <libxl.h>
 | 
			
		||||
#include "ExportToExcel.h"
 | 
			
		||||
 | 
			
		||||
using namespace libxl;
 | 
			
		||||
using namespace std;
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
@@ -0,0 +1,2 @@
 | 
			
		||||
#pragma once
 | 
			
		||||
 | 
			
		||||
@@ -0,0 +1,785 @@
 | 
			
		||||
#include <libxl.h>
 | 
			
		||||
#include <stdexcept>
 | 
			
		||||
#include "LoadFromExcel.h"
 | 
			
		||||
#include "../../excel/excel.h"
 | 
			
		||||
 | 
			
		||||
using namespace std;
 | 
			
		||||
using namespace libxl;
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
/************************************************
 | 
			
		||||
* \brief 从Excel文件读取车商方案表
 | 
			
		||||
* \param filePath Excel文件路径
 | 
			
		||||
* \param schemeMap 存放车商方案数据的map
 | 
			
		||||
************************************************/
 | 
			
		||||
void LoadCarDealerSchemeFromXlsx( const wstring &           filePath,
 | 
			
		||||
                                  unsigned int              sheetIndex,
 | 
			
		||||
                                  unsigned int              startRowIndex,
 | 
			
		||||
                                  vector<CarDealerScheme> & schemeVector )
 | 
			
		||||
{
 | 
			
		||||
	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 firstColumnIndex = pSheet->firstCol();
 | 
			
		||||
	int rowIndex         = firstRowIndex + startRowIndex;
 | 
			
		||||
 | 
			
		||||
	while ( rowIndex <= lastRowIndex )
 | 
			
		||||
	{
 | 
			
		||||
		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 && carDealerName = ReadCellStringFromXlsx( pBook, sheetIndex, rowIndex, colunmIndex + 3, true );
 | 
			
		||||
		const wstring && manHourPrice  = ReadCellStringFromXlsx( pBook, sheetIndex, rowIndex, colunmIndex + 4, true );
 | 
			
		||||
		const wstring && partPrice     = ReadCellStringFromXlsx( pBook, sheetIndex, rowIndex, colunmIndex + 5, true );
 | 
			
		||||
		const wstring && claimSupport  = ReadCellStringFromXlsx( pBook, sheetIndex, rowIndex, colunmIndex + 6, true );
 | 
			
		||||
		const wstring && scheme        = ReadCellStringFromXlsx( pBook, sheetIndex, rowIndex, colunmIndex + 7, true );
 | 
			
		||||
		const wstring && isQualified   = ReadCellStringFromXlsx( pBook, sheetIndex, rowIndex, colunmIndex + 8, true );
 | 
			
		||||
 | 
			
		||||
		//空行跳过
 | 
			
		||||
		if ( carDealerCode.empty() == true )
 | 
			
		||||
		{
 | 
			
		||||
			rowIndex++;
 | 
			
		||||
 | 
			
		||||
			continue;
 | 
			
		||||
		}
 | 
			
		||||
 | 
			
		||||
		CarDealerScheme carDealerScheme( theYear,
 | 
			
		||||
		                                 theMonth,
 | 
			
		||||
		                                 carDealerCode,
 | 
			
		||||
		                                 manHourPrice,
 | 
			
		||||
		                                 partPrice,
 | 
			
		||||
		                                 claimSupport,
 | 
			
		||||
		                                 scheme,
 | 
			
		||||
		                                 isQualified );
 | 
			
		||||
 | 
			
		||||
		schemeVector.push_back( carDealerScheme );
 | 
			
		||||
 | 
			
		||||
		rowIndex++;
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	pBook->release();
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
void LoadCarDealerAchievementFromXlsx( const std::wstring &                filePath,
 | 
			
		||||
                                       unsigned                            sheetIndex,
 | 
			
		||||
                                       unsigned                            startRowIndex,
 | 
			
		||||
                                       std::vector<CarDealerAchievement> & achievementVector )
 | 
			
		||||
{
 | 
			
		||||
	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 firstColumnIndex = pSheet->firstCol();
 | 
			
		||||
	int rowIndex         = firstRowIndex + startRowIndex;
 | 
			
		||||
 | 
			
		||||
	while ( rowIndex <= lastRowIndex )
 | 
			
		||||
	{
 | 
			
		||||
		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 && 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;
 | 
			
		||||
 | 
			
		||||
		//空行跳过
 | 
			
		||||
		if ( carDealerCode.empty() == true )
 | 
			
		||||
		{
 | 
			
		||||
			rowIndex++;
 | 
			
		||||
 | 
			
		||||
			continue;
 | 
			
		||||
		}
 | 
			
		||||
 | 
			
		||||
		//每个字段都要先判断数据类型再读写,防止填写表格的人填错内容。
 | 
			
		||||
		CellType type = pSheet->cellType( rowIndex, firstColumnIndex + 4 );
 | 
			
		||||
		char     errorMessage[1000];
 | 
			
		||||
 | 
			
		||||
		//产值
 | 
			
		||||
		if ( type == CELLTYPE_NUMBER )
 | 
			
		||||
		{
 | 
			
		||||
			checkedAchievement = pSheet->readNum( rowIndex, firstColumnIndex + 4 );
 | 
			
		||||
		}
 | 
			
		||||
		else
 | 
			
		||||
		{
 | 
			
		||||
			pBook->release();
 | 
			
		||||
 | 
			
		||||
			sprintf( errorMessage, "第%d行第%d列,格式错误,不是数字类型!", rowIndex, firstColumnIndex + 4 );
 | 
			
		||||
 | 
			
		||||
			throw runtime_error( errorMessage );
 | 
			
		||||
		}
 | 
			
		||||
 | 
			
		||||
		//签单数量
 | 
			
		||||
		type = pSheet->cellType( rowIndex, firstColumnIndex + 5 );
 | 
			
		||||
 | 
			
		||||
		if ( type == CELLTYPE_NUMBER )
 | 
			
		||||
		{
 | 
			
		||||
			policyAmount = static_cast<int>(pSheet->readNum( rowIndex, firstColumnIndex + 5 ));
 | 
			
		||||
		}
 | 
			
		||||
		else
 | 
			
		||||
		{
 | 
			
		||||
			pBook->release();
 | 
			
		||||
 | 
			
		||||
			sprintf( errorMessage, "第%d行第%d列,格式错误,不是数字类型!", rowIndex, firstColumnIndex + 5 );
 | 
			
		||||
 | 
			
		||||
			throw runtime_error( errorMessage );
 | 
			
		||||
		}
 | 
			
		||||
 | 
			
		||||
		//太平洋保险新车签单台次
 | 
			
		||||
		type = pSheet->cellType( rowIndex, firstColumnIndex + 6 );
 | 
			
		||||
 | 
			
		||||
		if ( type == CELLTYPE_NUMBER )
 | 
			
		||||
		{
 | 
			
		||||
			cpicAmount = static_cast<int>(pSheet->readNum( rowIndex, firstColumnIndex + 6 ));
 | 
			
		||||
		}
 | 
			
		||||
		else
 | 
			
		||||
		{
 | 
			
		||||
			pBook->release();
 | 
			
		||||
 | 
			
		||||
			sprintf( errorMessage, "第%d行第%d列,格式错误,不是数字类型!", rowIndex, firstColumnIndex + 6 );
 | 
			
		||||
 | 
			
		||||
			throw runtime_error( errorMessage );
 | 
			
		||||
		}
 | 
			
		||||
 | 
			
		||||
		//中国人保新车签单台次
 | 
			
		||||
		type = pSheet->cellType( rowIndex, firstColumnIndex + 7 );
 | 
			
		||||
 | 
			
		||||
		if ( type == CELLTYPE_NUMBER )
 | 
			
		||||
		{
 | 
			
		||||
			piccAmount = static_cast<int>(pSheet->readNum( rowIndex, firstColumnIndex + 7 ));
 | 
			
		||||
		}
 | 
			
		||||
		else
 | 
			
		||||
		{
 | 
			
		||||
			pBook->release();
 | 
			
		||||
 | 
			
		||||
			sprintf( errorMessage, "第%d行第%d列,格式错误,不是数字类型!", rowIndex, firstColumnIndex + 7 );
 | 
			
		||||
 | 
			
		||||
			throw runtime_error( errorMessage );
 | 
			
		||||
		}
 | 
			
		||||
 | 
			
		||||
		//中国平安新车签单台次
 | 
			
		||||
		type = pSheet->cellType( rowIndex, firstColumnIndex + 8 );
 | 
			
		||||
 | 
			
		||||
		if ( type == CELLTYPE_NUMBER )
 | 
			
		||||
		{
 | 
			
		||||
			pinganAmount = static_cast<int>(pSheet->readNum( rowIndex, firstColumnIndex + 8 ));
 | 
			
		||||
		}
 | 
			
		||||
		else
 | 
			
		||||
		{
 | 
			
		||||
			pBook->release();
 | 
			
		||||
 | 
			
		||||
			sprintf( errorMessage, "第%d行第%d列,格式错误,不是数字类型!", rowIndex, firstColumnIndex + 8 );
 | 
			
		||||
 | 
			
		||||
			throw runtime_error( errorMessage );
 | 
			
		||||
		}
 | 
			
		||||
 | 
			
		||||
		//其他保险公司新车签单台次
 | 
			
		||||
		type = pSheet->cellType( rowIndex, firstColumnIndex + 9 );
 | 
			
		||||
 | 
			
		||||
		if ( type == CELLTYPE_NUMBER )
 | 
			
		||||
		{
 | 
			
		||||
			othersAmount = static_cast<int>(pSheet->readNum( rowIndex, firstColumnIndex + 9 ));
 | 
			
		||||
		}
 | 
			
		||||
		else
 | 
			
		||||
		{
 | 
			
		||||
			pBook->release();
 | 
			
		||||
 | 
			
		||||
			sprintf( errorMessage, "第%d行第%d列,格式错误,不是数字类型!", rowIndex, firstColumnIndex + 9 );
 | 
			
		||||
 | 
			
		||||
			throw runtime_error( errorMessage );
 | 
			
		||||
		}
 | 
			
		||||
 | 
			
		||||
		CarDealerAchievement achievement( theYear,
 | 
			
		||||
		                                  theMonth,
 | 
			
		||||
		                                  carDealerCode,
 | 
			
		||||
		                                  checkedAchievement,
 | 
			
		||||
		                                  policyAmount,
 | 
			
		||||
		                                  cpicAmount,
 | 
			
		||||
		                                  piccAmount,
 | 
			
		||||
		                                  pinganAmount,
 | 
			
		||||
		                                  othersAmount );
 | 
			
		||||
 | 
			
		||||
		achievementVector.push_back( achievement );
 | 
			
		||||
 | 
			
		||||
		rowIndex++;
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	pBook->release();
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
void LoadRepairOrderFromXlsx( const std::wstring &       filePath,
 | 
			
		||||
                              unsigned                   sheetIndex,
 | 
			
		||||
                              unsigned                   startRowIndex,
 | 
			
		||||
                              std::vector<RepairOrder> & orderVector )
 | 
			
		||||
{
 | 
			
		||||
	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();
 | 
			
		||||
 | 
			
		||||
		//报案推荐车商代码在表格中不存在,但在数据库中存在。
 | 
			
		||||
		const wstring && branchName                  = ReadCellStringFromXlsx( pBook, sheetIndex, rowIndex, colunmIndex++, true );
 | 
			
		||||
		const wstring && orderNo                     = ReadCellStringFromXlsx( pBook, sheetIndex, rowIndex, colunmIndex++, true );
 | 
			
		||||
		const wstring && orderType                   = ReadCellStringFromXlsx( pBook, sheetIndex, rowIndex, colunmIndex++, true );
 | 
			
		||||
		const wstring && notifyNo                    = ReadCellStringFromXlsx( pBook, sheetIndex, rowIndex, colunmIndex++, true );
 | 
			
		||||
		const wstring && damageArea                  = ReadCellStringFromXlsx( pBook, sheetIndex, rowIndex, colunmIndex++, true );
 | 
			
		||||
		const wstring && damageDate                  = ReadCellStringFromXlsx( pBook, sheetIndex, rowIndex, colunmIndex++, true );
 | 
			
		||||
		const wstring && generatingDate              = ReadCellStringFromXlsx( pBook, sheetIndex, rowIndex, colunmIndex++, true );
 | 
			
		||||
		const wstring && policyNo                    = ReadCellStringFromXlsx( pBook, sheetIndex, rowIndex, colunmIndex++, true );
 | 
			
		||||
		const wstring && policyNoJQX                 = ReadCellStringFromXlsx( pBook, sheetIndex, rowIndex, colunmIndex++, true );
 | 
			
		||||
		const wstring && plateNumber                 = ReadCellStringFromXlsx( pBook, sheetIndex, rowIndex, colunmIndex++, true );
 | 
			
		||||
		const wstring && brandName                   = ReadCellStringFromXlsx( pBook, sheetIndex, rowIndex, colunmIndex++, true );
 | 
			
		||||
		const wstring && isInsuranceObject           = ReadCellStringFromXlsx( pBook, sheetIndex, rowIndex, colunmIndex++, true );
 | 
			
		||||
		const wstring && isSuccess                   = ReadCellStringFromXlsx( pBook, sheetIndex, rowIndex, colunmIndex++, true );
 | 
			
		||||
		const wstring && recommandDealerCode         = ReadCellStringFromXlsx( pBook, sheetIndex, rowIndex, colunmIndex++, true );
 | 
			
		||||
		const wstring && recommandDealerName         = ReadCellStringFromXlsx( pBook, sheetIndex, rowIndex, colunmIndex++, true );
 | 
			
		||||
		const wstring && recommandDealerCodeInNotify = L""; // ReadCellStringFromXlsx(pBook, sheetIndex, rowIndex, colunmIndex, true);
 | 
			
		||||
		const wstring && recommandDealerNameInNotify = ReadCellStringFromXlsx( pBook, sheetIndex, rowIndex, colunmIndex++, true );
 | 
			
		||||
		const wstring && recommandDealerNameInSurvey = ReadCellStringFromXlsx( pBook, sheetIndex, rowIndex, colunmIndex++, true );
 | 
			
		||||
		const wstring && agentName                   = ReadCellStringFromXlsx( pBook, sheetIndex, rowIndex, colunmIndex++, true );
 | 
			
		||||
		const wstring && surveyor                    = ReadCellStringFromXlsx( pBook, sheetIndex, rowIndex, colunmIndex++, true );
 | 
			
		||||
		const wstring && checkDate                   = ReadCellStringFromXlsx( pBook, sheetIndex, rowIndex, colunmIndex++, true );
 | 
			
		||||
		const wstring && repairingStartDate          = ReadCellStringFromXlsx( pBook, sheetIndex, rowIndex, colunmIndex++, true );
 | 
			
		||||
		const wstring && repairingFinishDate         = ReadCellStringFromXlsx( pBook, sheetIndex, rowIndex, colunmIndex++, true );
 | 
			
		||||
		const wstring && status                      = ReadCellStringFromXlsx( pBook, sheetIndex, rowIndex, colunmIndex++, true );
 | 
			
		||||
		const wstring && lostItemID                  = ReadCellStringFromXlsx( pBook, sheetIndex, rowIndex, colunmIndex++, true );
 | 
			
		||||
		const wstring && surveyorRecommandStatus     = ReadCellStringFromXlsx( pBook, sheetIndex, rowIndex, colunmIndex++, true );
 | 
			
		||||
 | 
			
		||||
		//空行跳过
 | 
			
		||||
		if ( orderNo.empty() == true )
 | 
			
		||||
		{
 | 
			
		||||
			rowIndex++;
 | 
			
		||||
 | 
			
		||||
			continue;
 | 
			
		||||
		}
 | 
			
		||||
 | 
			
		||||
		RepairOrder order( branchName,
 | 
			
		||||
		                   orderNo,
 | 
			
		||||
		                   orderType,
 | 
			
		||||
		                   notifyNo,
 | 
			
		||||
		                   damageArea,
 | 
			
		||||
		                   damageDate,
 | 
			
		||||
		                   generatingDate,
 | 
			
		||||
		                   policyNo,
 | 
			
		||||
		                   policyNoJQX,
 | 
			
		||||
		                   plateNumber,
 | 
			
		||||
		                   brandName,
 | 
			
		||||
		                   isInsuranceObject,
 | 
			
		||||
		                   isSuccess,
 | 
			
		||||
		                   recommandDealerCode,
 | 
			
		||||
		                   recommandDealerName,
 | 
			
		||||
		                   recommandDealerCodeInNotify,
 | 
			
		||||
		                   recommandDealerNameInNotify,
 | 
			
		||||
		                   recommandDealerNameInSurvey,
 | 
			
		||||
		                   agentName,
 | 
			
		||||
		                   surveyor,
 | 
			
		||||
		                   checkDate,
 | 
			
		||||
		                   repairingStartDate,
 | 
			
		||||
		                   repairingFinishDate,
 | 
			
		||||
		                   status,
 | 
			
		||||
		                   lostItemID,
 | 
			
		||||
		                   surveyorRecommandStatus );
 | 
			
		||||
 | 
			
		||||
		orderVector.push_back( order );
 | 
			
		||||
 | 
			
		||||
		rowIndex++;
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	pBook->release();
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
void LoadRepairSuggestionFromXlsx( const std::wstring &                  filePath,
 | 
			
		||||
                                   unsigned                              sheetIndex,
 | 
			
		||||
                                   unsigned                              startRowIndex,
 | 
			
		||||
                                   std::vector<RepairSuggestionRecord> & recordVector )
 | 
			
		||||
{
 | 
			
		||||
	Book *  pBook  = xlCreateXMLBookW();
 | 
			
		||||
	Sheet * pSheet = nullptr;
 | 
			
		||||
 | 
			
		||||
	if ( pBook == nullptr )
 | 
			
		||||
	{
 | 
			
		||||
		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 )
 | 
			
		||||
	{
 | 
			
		||||
		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();
 | 
			
		||||
 | 
			
		||||
		wstring orderNo                = ReadCellStringFromXlsx( pBook, sheetIndex, rowIndex, colunmIndex++, true );
 | 
			
		||||
		wstring orderType              = ReadCellStringFromXlsx( pBook, sheetIndex, rowIndex, colunmIndex++, true );
 | 
			
		||||
		wstring notifyNo               = ReadCellStringFromXlsx( pBook, sheetIndex, rowIndex, colunmIndex++, true );
 | 
			
		||||
		wstring suggestedCarDealerCode = ReadCellStringFromXlsx( pBook, sheetIndex, rowIndex, colunmIndex++, true );
 | 
			
		||||
		wstring suggestedCarDealerName = ReadCellStringFromXlsx( pBook, sheetIndex, rowIndex, colunmIndex++, true );
 | 
			
		||||
		wstring damageDate             = ReadCellStringFromXlsx( pBook, sheetIndex, rowIndex, colunmIndex++, true );
 | 
			
		||||
		wstring plateNumber            = ReadCellStringFromXlsx( pBook, sheetIndex, rowIndex, colunmIndex++, true );
 | 
			
		||||
		wstring brandName              = ReadCellStringFromXlsx( pBook, sheetIndex, rowIndex, colunmIndex++, true );
 | 
			
		||||
		wstring messageType            = ReadCellStringFromXlsx( pBook, sheetIndex, rowIndex, colunmIndex++, true );
 | 
			
		||||
		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++;
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	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,
 | 
			
		||||
                             std::vector<RepairOrder> & orderVector )
 | 
			
		||||
{
 | 
			
		||||
	Book *  pBook  = xlCreateBookW();
 | 
			
		||||
	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();
 | 
			
		||||
 | 
			
		||||
		// const wstring && branchName                  = ReadCellStringFromXlsx( pBook, sheetIndex, rowIndex, colunmIndex++, true );
 | 
			
		||||
		// const wstring && orderNo                     = ReadCellStringFromXlsx( pBook, sheetIndex, rowIndex, colunmIndex++, true );
 | 
			
		||||
		// const wstring && orderType                   = ReadCellStringFromXlsx( pBook, sheetIndex, rowIndex, colunmIndex++, true );
 | 
			
		||||
		// const wstring && notifyNo                    = ReadCellStringFromXlsx( pBook, sheetIndex, rowIndex, colunmIndex++, true );
 | 
			
		||||
		// const wstring && damageArea                  = ReadCellStringFromXlsx( pBook, sheetIndex, rowIndex, colunmIndex++, true );
 | 
			
		||||
		// const wstring && damageDate                  = ReadCellStringFromXlsx( pBook, sheetIndex, rowIndex, colunmIndex++, true );
 | 
			
		||||
		// const wstring && generatingDate              = ReadCellStringFromXlsx( pBook, sheetIndex, rowIndex, colunmIndex++, true );
 | 
			
		||||
		// const wstring && policyNo                    = ReadCellStringFromXlsx( pBook, sheetIndex, rowIndex, colunmIndex++, true );
 | 
			
		||||
		// const wstring && policyNoJQX                 = ReadCellStringFromXlsx( pBook, sheetIndex, rowIndex, colunmIndex++, true );
 | 
			
		||||
		// const wstring && plateNumber                 = ReadCellStringFromXlsx( pBook, sheetIndex, rowIndex, colunmIndex++, true );
 | 
			
		||||
		// const wstring && brandName                   = ReadCellStringFromXlsx( pBook, sheetIndex, rowIndex, colunmIndex++, true );
 | 
			
		||||
		// const wstring && isInsuranceObject           = ReadCellStringFromXlsx( pBook, sheetIndex, rowIndex, colunmIndex++, true );
 | 
			
		||||
		// const wstring && isSuccess                   = ReadCellStringFromXlsx( pBook, sheetIndex, rowIndex, colunmIndex++, true );
 | 
			
		||||
		// const wstring && recommandDealerCode         = ReadCellStringFromXlsx( pBook, sheetIndex, rowIndex, colunmIndex++, true );
 | 
			
		||||
		// const wstring && recommandDealerName         = ReadCellStringFromXlsx( pBook, sheetIndex, rowIndex, colunmIndex++, true );
 | 
			
		||||
		// const wstring && recommandDealerCodeInNotify = ReadCellStringFromXlsx( pBook, sheetIndex, rowIndex, colunmIndex++, true );
 | 
			
		||||
		// const wstring && recommandDealerNameInNotify = ReadCellStringFromXlsx( pBook, sheetIndex, rowIndex, colunmIndex++, true );
 | 
			
		||||
		// const wstring && recommandDealerNameInSurvey = ReadCellStringFromXlsx( pBook, sheetIndex, rowIndex, colunmIndex++, true );
 | 
			
		||||
		// const wstring && agentName                   = ReadCellStringFromXlsx( pBook, sheetIndex, rowIndex, colunmIndex++, true );
 | 
			
		||||
		// const wstring && surveyor                    = ReadCellStringFromXlsx( pBook, sheetIndex, rowIndex, colunmIndex++, true );
 | 
			
		||||
		// const wstring && checkDate                   = ReadCellStringFromXlsx( pBook, sheetIndex, rowIndex, colunmIndex++, true );
 | 
			
		||||
		// const wstring && repairingStartDate          = ReadCellStringFromXlsx( pBook, sheetIndex, rowIndex, colunmIndex++, true );
 | 
			
		||||
		// const wstring && repairingFinishDate         = ReadCellStringFromXlsx( pBook, sheetIndex, rowIndex, colunmIndex++, true );
 | 
			
		||||
		// const wstring && status                      = ReadCellStringFromXlsx( pBook, sheetIndex, rowIndex, colunmIndex++, true );
 | 
			
		||||
		// const wstring && lostItemID                  = ReadCellStringFromXlsx( pBook, sheetIndex, rowIndex, colunmIndex++, true );
 | 
			
		||||
		// const wstring && surveyorRecommandStatus     = ReadCellStringFromXlsx( pBook, sheetIndex, rowIndex, colunmIndex++, true );
 | 
			
		||||
		//
 | 
			
		||||
		// //空行跳过
 | 
			
		||||
		// if ( orderNo.empty() == true )
 | 
			
		||||
		// {
 | 
			
		||||
		// 	rowIndex++;
 | 
			
		||||
		//
 | 
			
		||||
		// 	continue;
 | 
			
		||||
		// }
 | 
			
		||||
		//
 | 
			
		||||
		// RepairOrder order( branchName,
 | 
			
		||||
		//                    orderNo,
 | 
			
		||||
		//                    orderType,
 | 
			
		||||
		//                    notifyNo,
 | 
			
		||||
		//                    damageArea,
 | 
			
		||||
		//                    damageDate,
 | 
			
		||||
		//                    generatingDate,
 | 
			
		||||
		//                    policyNo,
 | 
			
		||||
		//                    policyNoJQX,
 | 
			
		||||
		//                    plateNumber,
 | 
			
		||||
		//                    brandName,
 | 
			
		||||
		//                    isInsuranceObject,
 | 
			
		||||
		//                    isSuccess,
 | 
			
		||||
		//                    recommandDealerCode,
 | 
			
		||||
		//                    recommandDealerName,
 | 
			
		||||
		//                    recommandDealerCodeInNotify,
 | 
			
		||||
		//                    recommandDealerNameInNotify,
 | 
			
		||||
		//                    recommandDealerNameInSurvey,
 | 
			
		||||
		//                    agentName,
 | 
			
		||||
		//                    surveyor,
 | 
			
		||||
		//                    checkDate,
 | 
			
		||||
		//                    repairingStartDate,
 | 
			
		||||
		//                    repairingFinishDate,
 | 
			
		||||
		//                    status,
 | 
			
		||||
		//                    lostItemID,
 | 
			
		||||
		//                    surveyorRecommandStatus );
 | 
			
		||||
		//
 | 
			
		||||
		// orderVector.push_back( order );
 | 
			
		||||
 | 
			
		||||
		rowIndex++;
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	pBook->release();
 | 
			
		||||
}
 | 
			
		||||
@@ -0,0 +1,75 @@
 | 
			
		||||
#pragma once
 | 
			
		||||
 | 
			
		||||
#include <string>
 | 
			
		||||
#include <vector>
 | 
			
		||||
#include "../../Datastructure/CarDealerScheme/CarDealerScheme.h"
 | 
			
		||||
#include "../../Datastructure/CarDealerAchievement/CarDealerAchievement.h"
 | 
			
		||||
#include "../../Datastructure/RepairOrder/RepairOrder.h"
 | 
			
		||||
#include "../../Datastructure/RepairSuggestion/RepairSuggestionRecord.h"
 | 
			
		||||
#include "../../Datastructure/新送返修监控报表/新送返修监控报表.h"
 | 
			
		||||
 | 
			
		||||
/************************************************
 | 
			
		||||
* \brief 
 | 
			
		||||
* \param filePath 
 | 
			
		||||
* \param sheetIndex 
 | 
			
		||||
* \param startRowIndex 
 | 
			
		||||
* \param schemeVector 
 | 
			
		||||
************************************************/
 | 
			
		||||
void LoadCarDealerSchemeFromXlsx( const std::wstring &           filePath,
 | 
			
		||||
                                  unsigned int                   sheetIndex,
 | 
			
		||||
                                  unsigned int                   startRowIndex,
 | 
			
		||||
                                  std::vector<CarDealerScheme> & schemeVector );
 | 
			
		||||
 | 
			
		||||
/************************************************
 | 
			
		||||
* \brief 
 | 
			
		||||
* \param filePath 
 | 
			
		||||
* \param sheetIndex 
 | 
			
		||||
* \param startRowIndex 
 | 
			
		||||
* \param achievementVector 
 | 
			
		||||
************************************************/
 | 
			
		||||
void LoadCarDealerAchievementFromXlsx( const std::wstring &                filePath,
 | 
			
		||||
                                       unsigned int                        sheetIndex,
 | 
			
		||||
                                       unsigned int                        startRowIndex,
 | 
			
		||||
                                       std::vector<CarDealerAchievement> & achievementVector );
 | 
			
		||||
 | 
			
		||||
/************************************************
 | 
			
		||||
* \brief 
 | 
			
		||||
* \param filePath 
 | 
			
		||||
* \param sheetIndex 
 | 
			
		||||
* \param startRowIndex 
 | 
			
		||||
* \param orderVector 
 | 
			
		||||
************************************************/
 | 
			
		||||
void LoadRepairOrderFromXlsx( const std::wstring &       filePath,
 | 
			
		||||
                              unsigned int               sheetIndex,
 | 
			
		||||
                              unsigned int               startRowIndex,
 | 
			
		||||
                              std::vector<RepairOrder> & orderVector );
 | 
			
		||||
 | 
			
		||||
// void LoadRepairOrderFromXls( const std::wstring &       filePath,
 | 
			
		||||
//                              unsigned                   sheetIndex,
 | 
			
		||||
//                              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,
 | 
			
		||||
                                   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 );
 | 
			
		||||
@@ -0,0 +1,106 @@
 | 
			
		||||
#include <map>
 | 
			
		||||
#include <stdexcept>
 | 
			
		||||
#include <exception>
 | 
			
		||||
#include <ocilib.hpp>
 | 
			
		||||
#include <libxl.h>
 | 
			
		||||
#include "FromExcelToOracle.h"
 | 
			
		||||
 | 
			
		||||
#include "../../excel/excel.h"
 | 
			
		||||
 | 
			
		||||
using namespace std;;
 | 
			
		||||
using namespace ocilib;
 | 
			
		||||
using namespace libxl;
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
void RepairMonitoringFromExcelToOracle( const std::wstring & filePath,
 | 
			
		||||
                                        unsigned int         sheetIndex,
 | 
			
		||||
                                        bool                 hasTitleRow,
 | 
			
		||||
                                        const std::string &  tnsName,
 | 
			
		||||
                                        const std::string &  userName,
 | 
			
		||||
                                        const std::string &  password )
 | 
			
		||||
{
 | 
			
		||||
	//防御性验证
 | 
			
		||||
	if ( filePath.empty() == true ||
 | 
			
		||||
	     tnsName.empty() == true ||
 | 
			
		||||
	     userName.empty() == true ||
 | 
			
		||||
	     password.empty() == true )
 | 
			
		||||
	{
 | 
			
		||||
		throw runtime_error( "参数错误!" );
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	//libxl对象
 | 
			
		||||
	Book *            pBook  = xlCreateBookW();
 | 
			
		||||
	Sheet *           pSheet = nullptr;
 | 
			
		||||
	map<int, wstring> titleMap;         //存放标题行
 | 
			
		||||
	unsigned int      firstColumnIndex; //第一列
 | 
			
		||||
	unsigned int      lastColumnIndex;  //最后一列
 | 
			
		||||
	unsigned int      firstRowIndex;
 | 
			
		||||
	unsigned int      lastRowIndex;
 | 
			
		||||
 | 
			
		||||
	//ocilib对象
 | 
			
		||||
	Connection * pConnection = nullptr;
 | 
			
		||||
	Statement *  pStatement  = nullptr;
 | 
			
		||||
 | 
			
		||||
	if ( pBook == nullptr )
 | 
			
		||||
	{
 | 
			
		||||
		throw runtime_error( "libxl初始化失败!" );
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	if ( pBook->load( filePath.c_str() ) != true )
 | 
			
		||||
	{
 | 
			
		||||
		throw runtime_error( "打开excel文件失败!" );
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	pSheet = pBook->getSheet( sheetIndex );
 | 
			
		||||
 | 
			
		||||
	if ( pSheet == nullptr )
 | 
			
		||||
	{
 | 
			
		||||
		throw runtime_error( "读取sheet失败失败!" );
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	firstColumnIndex = pSheet->firstCol();
 | 
			
		||||
	lastColumnIndex  = pSheet->lastCol();
 | 
			
		||||
	firstRowIndex    = pSheet->firstRow();
 | 
			
		||||
	lastRowIndex     = pSheet->lastRow();
 | 
			
		||||
 | 
			
		||||
	unsigned int colIndex = firstColumnIndex;
 | 
			
		||||
	unsigned int rowIndex = firstRowIndex;
 | 
			
		||||
 | 
			
		||||
	//保存标题
 | 
			
		||||
	if ( hasTitleRow )
 | 
			
		||||
	{
 | 
			
		||||
		while ( colIndex <= lastColumnIndex )
 | 
			
		||||
		{
 | 
			
		||||
			wstring && title = ReadCellStringFromXlsx( pBook, sheetIndex, firstRowIndex, colIndex, false );
 | 
			
		||||
 | 
			
		||||
			titleMap.insert( pair<int, wstring>( colIndex, title ) );
 | 
			
		||||
 | 
			
		||||
			++colIndex;
 | 
			
		||||
		}
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	//逐行保存数据
 | 
			
		||||
	while ( colIndex <= lastColumnIndex )
 | 
			
		||||
	{
 | 
			
		||||
		wstring && title = ReadCellStringFromXlsx( pBook, sheetIndex, firstRowIndex, colIndex, false );
 | 
			
		||||
 | 
			
		||||
		titleMap.insert( pair<int, wstring>( colIndex, title ) );
 | 
			
		||||
 | 
			
		||||
		++colIndex;
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	//逐行保存数据
 | 
			
		||||
	for ( rowIndex = firstRowIndex; rowIndex >= lastRowIndex; rowIndex++ )
 | 
			
		||||
	{
 | 
			
		||||
		//如果是标题行,就跳过
 | 
			
		||||
		if ( rowIndex == firstRowIndex )
 | 
			
		||||
		{
 | 
			
		||||
			continue;
 | 
			
		||||
		}
 | 
			
		||||
 | 
			
		||||
		//逐列绑定sql语句
 | 
			
		||||
		for ( colIndex = firstColumnIndex; colIndex <= lastColumnIndex; colIndex++ )
 | 
			
		||||
		{
 | 
			
		||||
		}
 | 
			
		||||
	}
 | 
			
		||||
}
 | 
			
		||||
@@ -0,0 +1,10 @@
 | 
			
		||||
#pragma once
 | 
			
		||||
 | 
			
		||||
#include <iostream>
 | 
			
		||||
 | 
			
		||||
void RepairMonitoringFromExcelToOracle( const std::wstring & filePath,
 | 
			
		||||
                                        unsigned int         sheetIndex,
 | 
			
		||||
                                        bool                 hasTitleRow,
 | 
			
		||||
                                        const std::string &  tnsName,
 | 
			
		||||
                                        const std::string &  userName,
 | 
			
		||||
                                        const std::string &  password );
 | 
			
		||||
@@ -0,0 +1,76 @@
 | 
			
		||||
#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 );
 | 
			
		||||
@@ -0,0 +1 @@
 | 
			
		||||
#include "CarDealerAchievement.h"
 | 
			
		||||
@@ -0,0 +1,230 @@
 | 
			
		||||
#pragma once
 | 
			
		||||
 | 
			
		||||
#include <string>
 | 
			
		||||
 | 
			
		||||
class CarDealerAchievement
 | 
			
		||||
{
 | 
			
		||||
public:
 | 
			
		||||
 | 
			
		||||
	CarDealerAchievement( const std::wstring & theYear,
 | 
			
		||||
	                      const std::wstring & theMonth,
 | 
			
		||||
	                      const std::wstring & carDealerCode,
 | 
			
		||||
	                      const long double    checkedAchievement,
 | 
			
		||||
	                      const int            policyAmount,
 | 
			
		||||
	                      const int            cpicAmount,
 | 
			
		||||
	                      const int            piccAmount,
 | 
			
		||||
	                      const int            pinganAmount,
 | 
			
		||||
	                      const int            othersAmount )
 | 
			
		||||
		: theYear( theYear ),
 | 
			
		||||
		  theMonth( theMonth ),
 | 
			
		||||
		  carDealerCode( carDealerCode ),
 | 
			
		||||
		  checkedAchievement( checkedAchievement ),
 | 
			
		||||
		  policyAmount( policyAmount ),
 | 
			
		||||
		  cpicAmount( cpicAmount ),
 | 
			
		||||
		  piccAmount( piccAmount ),
 | 
			
		||||
		  pinganAmount( pinganAmount ),
 | 
			
		||||
		  othersAmount( othersAmount )
 | 
			
		||||
	{
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	CarDealerAchievement( const wchar_t *   theYear,
 | 
			
		||||
	                      const wchar_t *   theMonth,
 | 
			
		||||
	                      const wchar_t *   carDealerCode,
 | 
			
		||||
	                      const long double checkedAchievement,
 | 
			
		||||
	                      const int         policyAmount,
 | 
			
		||||
	                      const int         cpicAmount,
 | 
			
		||||
	                      const int         piccAmount,
 | 
			
		||||
	                      const int         pinganAmount,
 | 
			
		||||
	                      const int         othersAmount )
 | 
			
		||||
		: theYear( theYear ),
 | 
			
		||||
		  theMonth( theMonth ),
 | 
			
		||||
		  carDealerCode( carDealerCode ),
 | 
			
		||||
		  checkedAchievement( checkedAchievement ),
 | 
			
		||||
		  policyAmount( policyAmount ),
 | 
			
		||||
		  cpicAmount( cpicAmount ),
 | 
			
		||||
		  piccAmount( piccAmount ),
 | 
			
		||||
		  pinganAmount( pinganAmount ),
 | 
			
		||||
		  othersAmount( othersAmount )
 | 
			
		||||
	{
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
	CarDealerAchievement( const CarDealerAchievement & other )
 | 
			
		||||
		: theYear( other.theYear ),
 | 
			
		||||
		  theMonth( other.theMonth ),
 | 
			
		||||
		  carDealerCode( other.carDealerCode ),
 | 
			
		||||
		  checkedAchievement( other.checkedAchievement ),
 | 
			
		||||
		  policyAmount( other.policyAmount ),
 | 
			
		||||
		  cpicAmount( other.cpicAmount ),
 | 
			
		||||
		  piccAmount( other.piccAmount ),
 | 
			
		||||
		  pinganAmount( other.pinganAmount ),
 | 
			
		||||
		  othersAmount( other.othersAmount )
 | 
			
		||||
	{
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	CarDealerAchievement( CarDealerAchievement && other )
 | 
			
		||||
		: theYear( std::move(other.theYear) ),
 | 
			
		||||
		  theMonth( std::move(other.theMonth) ),
 | 
			
		||||
		  carDealerCode( std::move(other.carDealerCode) ),
 | 
			
		||||
		  checkedAchievement( other.checkedAchievement ),
 | 
			
		||||
		  policyAmount( other.policyAmount ),
 | 
			
		||||
		  cpicAmount( other.cpicAmount ),
 | 
			
		||||
		  piccAmount( other.piccAmount ),
 | 
			
		||||
		  pinganAmount( other.pinganAmount ),
 | 
			
		||||
		  othersAmount( other.othersAmount )
 | 
			
		||||
	{
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	CarDealerAchievement & operator=( const CarDealerAchievement & other )
 | 
			
		||||
	{
 | 
			
		||||
		if ( this == &other )
 | 
			
		||||
			return *this;
 | 
			
		||||
		theYear            = other.theYear;
 | 
			
		||||
		theMonth           = other.theMonth;
 | 
			
		||||
		carDealerCode      = other.carDealerCode;
 | 
			
		||||
		checkedAchievement = other.checkedAchievement;
 | 
			
		||||
		policyAmount       = other.policyAmount;
 | 
			
		||||
		cpicAmount         = other.cpicAmount;
 | 
			
		||||
		piccAmount         = other.piccAmount;
 | 
			
		||||
		pinganAmount       = other.pinganAmount;
 | 
			
		||||
		othersAmount       = other.othersAmount;
 | 
			
		||||
		return *this;
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	CarDealerAchievement & operator=( CarDealerAchievement && other )
 | 
			
		||||
	{
 | 
			
		||||
		if ( this == &other )
 | 
			
		||||
			return *this;
 | 
			
		||||
		theYear            = std::move( other.theYear );
 | 
			
		||||
		theMonth           = std::move( other.theMonth );
 | 
			
		||||
		carDealerCode      = std::move( other.carDealerCode );
 | 
			
		||||
		checkedAchievement = other.checkedAchievement;
 | 
			
		||||
		policyAmount       = other.policyAmount;
 | 
			
		||||
		cpicAmount         = other.cpicAmount;
 | 
			
		||||
		piccAmount         = other.piccAmount;
 | 
			
		||||
		pinganAmount       = other.pinganAmount;
 | 
			
		||||
		othersAmount       = other.othersAmount;
 | 
			
		||||
		return *this;
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
	friend bool operator==( const CarDealerAchievement & lhs, const CarDealerAchievement & rhs )
 | 
			
		||||
	{
 | 
			
		||||
		return lhs.theYear == rhs.theYear
 | 
			
		||||
		       && lhs.theMonth == rhs.theMonth
 | 
			
		||||
		       && lhs.carDealerCode == rhs.carDealerCode
 | 
			
		||||
		       && lhs.checkedAchievement == rhs.checkedAchievement
 | 
			
		||||
		       && lhs.policyAmount == rhs.policyAmount
 | 
			
		||||
		       && lhs.cpicAmount == rhs.cpicAmount
 | 
			
		||||
		       && lhs.piccAmount == rhs.piccAmount
 | 
			
		||||
		       && lhs.pinganAmount == rhs.pinganAmount
 | 
			
		||||
		       && lhs.othersAmount == rhs.othersAmount;
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	friend bool operator!=( const CarDealerAchievement & lhs, const CarDealerAchievement & rhs )
 | 
			
		||||
	{
 | 
			
		||||
		return !(lhs == rhs);
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
	std::wstring getTheYear() const
 | 
			
		||||
	{
 | 
			
		||||
		return theYear;
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	void setTheYear( const std::wstring & theYear )
 | 
			
		||||
	{
 | 
			
		||||
		this->theYear = theYear;
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	std::wstring getTheMonth() const
 | 
			
		||||
	{
 | 
			
		||||
		return theMonth;
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	void setTheMonth( const std::wstring & theMonth )
 | 
			
		||||
	{
 | 
			
		||||
		this->theMonth = theMonth;
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	std::wstring getCarDealerCode() const
 | 
			
		||||
	{
 | 
			
		||||
		return carDealerCode;
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	void setCarDealerCode( const std::wstring & carDealerCode )
 | 
			
		||||
	{
 | 
			
		||||
		this->carDealerCode = carDealerCode;
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	long double getCheckedAchievement() const
 | 
			
		||||
	{
 | 
			
		||||
		return checkedAchievement;
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	void setCheckedAchievement( const long double checkedAchievement )
 | 
			
		||||
	{
 | 
			
		||||
		this->checkedAchievement = checkedAchievement;
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	int getPolicyAmount() const
 | 
			
		||||
	{
 | 
			
		||||
		return policyAmount;
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	void setPolicyAmount( const int policyAmount )
 | 
			
		||||
	{
 | 
			
		||||
		this->policyAmount = policyAmount;
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	int getCpicAmount() const
 | 
			
		||||
	{
 | 
			
		||||
		return cpicAmount;
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	void setCpicAmount( const int cpicAmount )
 | 
			
		||||
	{
 | 
			
		||||
		this->cpicAmount = cpicAmount;
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	int getPiccAmount() const
 | 
			
		||||
	{
 | 
			
		||||
		return piccAmount;
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	void setPiccAmount( const int piccAmount )
 | 
			
		||||
	{
 | 
			
		||||
		this->piccAmount = piccAmount;
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	int getPinganAmount() const
 | 
			
		||||
	{
 | 
			
		||||
		return pinganAmount;
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	void setPinganAmount( const int pinganAmount )
 | 
			
		||||
	{
 | 
			
		||||
		this->pinganAmount = pinganAmount;
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	int getOthersAmount() const
 | 
			
		||||
	{
 | 
			
		||||
		return othersAmount;
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	void setOthersAmount( const int othersAmount )
 | 
			
		||||
	{
 | 
			
		||||
		this->othersAmount = othersAmount;
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
private:
 | 
			
		||||
	std::wstring theYear;
 | 
			
		||||
	std::wstring theMonth;
 | 
			
		||||
	std::wstring carDealerCode;
 | 
			
		||||
	long double  checkedAchievement;
 | 
			
		||||
	int          policyAmount;
 | 
			
		||||
	int          cpicAmount;
 | 
			
		||||
	int          piccAmount;
 | 
			
		||||
	int          pinganAmount;
 | 
			
		||||
	int          othersAmount;
 | 
			
		||||
};
 | 
			
		||||
@@ -0,0 +1 @@
 | 
			
		||||
#include "CarDealerScheme.h"
 | 
			
		||||
@@ -0,0 +1,193 @@
 | 
			
		||||
#pragma once
 | 
			
		||||
 | 
			
		||||
#include <string>
 | 
			
		||||
 | 
			
		||||
class CarDealerScheme
 | 
			
		||||
{
 | 
			
		||||
public:
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
	CarDealerScheme( const std::wstring & theYear,
 | 
			
		||||
	                 const std::wstring & theMonth,
 | 
			
		||||
	                 const std::wstring & carDealerCode,
 | 
			
		||||
	                 const std::wstring & manHourPrice,
 | 
			
		||||
	                 const std::wstring & partPrice,
 | 
			
		||||
	                 const std::wstring & claimSupport,
 | 
			
		||||
	                 const std::wstring & scheme,
 | 
			
		||||
	                 const std::wstring & isQualified )
 | 
			
		||||
		: theYear( theYear ),
 | 
			
		||||
		  theMonth( theMonth ),
 | 
			
		||||
		  carDealerCode( carDealerCode ),
 | 
			
		||||
		  manHourPrice( manHourPrice ),
 | 
			
		||||
		  partPrice( partPrice ),
 | 
			
		||||
		  claimSupport( claimSupport ),
 | 
			
		||||
		  scheme( scheme ),
 | 
			
		||||
		  isQualified( isQualified )
 | 
			
		||||
	{
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	CarDealerScheme( const wchar_t * theYear,
 | 
			
		||||
	                 const wchar_t * theMonth,
 | 
			
		||||
	                 const wchar_t * carDealerCode,
 | 
			
		||||
	                 const wchar_t * manHourPrice,
 | 
			
		||||
	                 const wchar_t * partPrice,
 | 
			
		||||
	                 const wchar_t * claimSupport,
 | 
			
		||||
	                 const wchar_t * scheme,
 | 
			
		||||
	                 const wchar_t * isQualified )
 | 
			
		||||
		: theYear( theYear ),
 | 
			
		||||
		  theMonth( theMonth ),
 | 
			
		||||
		  carDealerCode( carDealerCode ),
 | 
			
		||||
		  manHourPrice( manHourPrice ),
 | 
			
		||||
		  partPrice( partPrice ),
 | 
			
		||||
		  claimSupport( claimSupport ),
 | 
			
		||||
		  scheme( scheme ),
 | 
			
		||||
		  isQualified( isQualified )
 | 
			
		||||
	{
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
	CarDealerScheme( const CarDealerScheme & other )
 | 
			
		||||
		: theYear( other.theYear ),
 | 
			
		||||
		  theMonth( other.theMonth ),
 | 
			
		||||
		  carDealerCode( other.carDealerCode ),
 | 
			
		||||
		  manHourPrice( other.manHourPrice ),
 | 
			
		||||
		  partPrice( other.partPrice ),
 | 
			
		||||
		  claimSupport( other.claimSupport ),
 | 
			
		||||
		  scheme( other.scheme ),
 | 
			
		||||
		  isQualified( other.isQualified )
 | 
			
		||||
	{
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	CarDealerScheme( CarDealerScheme && other )
 | 
			
		||||
		: theYear( std::move( other.theYear ) ),
 | 
			
		||||
		  theMonth( std::move( other.theMonth ) ),
 | 
			
		||||
		  carDealerCode( std::move( other.carDealerCode ) ),
 | 
			
		||||
		  manHourPrice( std::move( other.manHourPrice ) ),
 | 
			
		||||
		  partPrice( std::move( other.partPrice ) ),
 | 
			
		||||
		  claimSupport( std::move( other.claimSupport ) ),
 | 
			
		||||
		  scheme( std::move( other.scheme ) ),
 | 
			
		||||
		  isQualified( std::move( other.isQualified ) )
 | 
			
		||||
	{
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	CarDealerScheme & operator=( const CarDealerScheme & other )
 | 
			
		||||
	{
 | 
			
		||||
		if ( this == &other )
 | 
			
		||||
			return *this;
 | 
			
		||||
		theYear       = other.theYear;
 | 
			
		||||
		theMonth      = other.theMonth;
 | 
			
		||||
		carDealerCode = other.carDealerCode;
 | 
			
		||||
		manHourPrice  = other.manHourPrice;
 | 
			
		||||
		partPrice     = other.partPrice;
 | 
			
		||||
		claimSupport  = other.claimSupport;
 | 
			
		||||
		scheme        = other.scheme;
 | 
			
		||||
		isQualified   = other.isQualified;
 | 
			
		||||
		return *this;
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	CarDealerScheme & operator=( CarDealerScheme && other )
 | 
			
		||||
	{
 | 
			
		||||
		if ( this == &other )
 | 
			
		||||
			return *this;
 | 
			
		||||
		theYear       = std::move( other.theYear );
 | 
			
		||||
		theMonth      = std::move( other.theMonth );
 | 
			
		||||
		carDealerCode = std::move( other.carDealerCode );
 | 
			
		||||
		manHourPrice  = std::move( other.manHourPrice );
 | 
			
		||||
		partPrice     = std::move( other.partPrice );
 | 
			
		||||
		claimSupport  = std::move( other.claimSupport );
 | 
			
		||||
		scheme        = std::move( other.scheme );
 | 
			
		||||
		isQualified   = std::move( other.isQualified );
 | 
			
		||||
		return *this;
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
	std::wstring getTheYear() const
 | 
			
		||||
	{
 | 
			
		||||
		return theYear;
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	void setTheYear( const std::wstring & theYear )
 | 
			
		||||
	{
 | 
			
		||||
		this->theYear = theYear;
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	std::wstring getTheMonth() const
 | 
			
		||||
	{
 | 
			
		||||
		return theMonth;
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	void setTheMonth( const std::wstring & theMonth )
 | 
			
		||||
	{
 | 
			
		||||
		this->theMonth = theMonth;
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	std::wstring getCarDealerCode() const
 | 
			
		||||
	{
 | 
			
		||||
		return carDealerCode;
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	void setCarDealerCode( const std::wstring & carDealerCode )
 | 
			
		||||
	{
 | 
			
		||||
		this->carDealerCode = carDealerCode;
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	std::wstring getManHourPrice() const
 | 
			
		||||
	{
 | 
			
		||||
		return manHourPrice;
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	void setManHourPrice( const std::wstring & manHourPrice )
 | 
			
		||||
	{
 | 
			
		||||
		this->manHourPrice = manHourPrice;
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	std::wstring getPartPrice() const
 | 
			
		||||
	{
 | 
			
		||||
		return partPrice;
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	void setPartPrice( const std::wstring & partPrice )
 | 
			
		||||
	{
 | 
			
		||||
		this->partPrice = partPrice;
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	std::wstring getClaimSupport() const
 | 
			
		||||
	{
 | 
			
		||||
		return claimSupport;
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	void setClaimSupport( const std::wstring & claimSupport )
 | 
			
		||||
	{
 | 
			
		||||
		this->claimSupport = claimSupport;
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	std::wstring getScheme() const
 | 
			
		||||
	{
 | 
			
		||||
		return scheme;
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	void setScheme( const std::wstring & scheme )
 | 
			
		||||
	{
 | 
			
		||||
		this->scheme = scheme;
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	std::wstring getIsQualified() const
 | 
			
		||||
	{
 | 
			
		||||
		return isQualified;
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	void setIsQualified( const std::wstring & isQualified )
 | 
			
		||||
	{
 | 
			
		||||
		this->isQualified = isQualified;
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
private:
 | 
			
		||||
	std::wstring theYear;
 | 
			
		||||
	std::wstring theMonth;
 | 
			
		||||
	std::wstring carDealerCode;
 | 
			
		||||
	std::wstring manHourPrice;
 | 
			
		||||
	std::wstring partPrice;
 | 
			
		||||
	std::wstring claimSupport; //理赔支持
 | 
			
		||||
	std::wstring scheme;
 | 
			
		||||
	std::wstring isQualified; //是否达成预期
 | 
			
		||||
};
 | 
			
		||||
@@ -0,0 +1,2 @@
 | 
			
		||||
 | 
			
		||||
#include "RepairOrder.h"
 | 
			
		||||
@@ -0,0 +1,514 @@
 | 
			
		||||
#pragma once
 | 
			
		||||
 | 
			
		||||
#include <string>
 | 
			
		||||
#include <utility>
 | 
			
		||||
 | 
			
		||||
class RepairOrder
 | 
			
		||||
{
 | 
			
		||||
public:
 | 
			
		||||
	RepairOrder( std::wstring branchName,
 | 
			
		||||
	             std::wstring orderNo,
 | 
			
		||||
	             std::wstring orderType,
 | 
			
		||||
	             std::wstring notifyNo,
 | 
			
		||||
	             std::wstring damageArea,
 | 
			
		||||
	             std::wstring damageDate,
 | 
			
		||||
	             std::wstring generatingDate,
 | 
			
		||||
	             std::wstring policyNo,
 | 
			
		||||
	             std::wstring policyNoJqx,
 | 
			
		||||
	             std::wstring plateNumber,
 | 
			
		||||
	             std::wstring brandName,
 | 
			
		||||
	             std::wstring isInsuranceObject,
 | 
			
		||||
	             std::wstring isSuccess,
 | 
			
		||||
	             std::wstring recommandDealerCode,
 | 
			
		||||
	             std::wstring recommandDealerName,
 | 
			
		||||
	             std::wstring recommandDealerCodeInNotify,
 | 
			
		||||
	             std::wstring recommandDealerNameInNotify,
 | 
			
		||||
	             std::wstring recommandDealerNameInSurvey,
 | 
			
		||||
	             std::wstring agentName,
 | 
			
		||||
	             std::wstring surveyor,
 | 
			
		||||
	             std::wstring checkDate,
 | 
			
		||||
	             std::wstring repairingStartDate,
 | 
			
		||||
	             std::wstring repairingFinishDate,
 | 
			
		||||
	             std::wstring status,
 | 
			
		||||
	             std::wstring lostItemId,
 | 
			
		||||
	             std::wstring surveyorRecommandStatus )
 | 
			
		||||
		: branchName( std::move( branchName ) ),
 | 
			
		||||
		  orderNo( std::move( orderNo ) ),
 | 
			
		||||
		  orderType( std::move( orderType ) ),
 | 
			
		||||
		  notifyNo( std::move( notifyNo ) ),
 | 
			
		||||
		  damageArea( std::move( damageArea ) ),
 | 
			
		||||
		  damageDate( std::move( damageDate ) ),
 | 
			
		||||
		  generatingDate( std::move( generatingDate ) ),
 | 
			
		||||
		  policyNo( std::move( policyNo ) ),
 | 
			
		||||
		  policyNoJQX( std::move( policyNoJqx ) ),
 | 
			
		||||
		  plateNumber( std::move( plateNumber ) ),
 | 
			
		||||
		  brandName( std::move( brandName ) ),
 | 
			
		||||
		  isInsuranceObject( std::move( isInsuranceObject ) ),
 | 
			
		||||
		  isSuccess( std::move( isSuccess ) ),
 | 
			
		||||
		  recommandDealerCode( std::move( recommandDealerCode ) ),
 | 
			
		||||
		  recommandDealerName( std::move( recommandDealerName ) ),
 | 
			
		||||
		  recommandDealerCodeInNotify( std::move( recommandDealerCodeInNotify ) ),
 | 
			
		||||
		  recommandDealerNameInNotify( std::move( recommandDealerNameInNotify ) ),
 | 
			
		||||
		  recommandDealerNameInSurvey( std::move( recommandDealerNameInSurvey ) ),
 | 
			
		||||
		  agentName( std::move( agentName ) ),
 | 
			
		||||
		  surveyor( std::move( surveyor ) ),
 | 
			
		||||
		  checkDate( std::move( checkDate ) ),
 | 
			
		||||
		  repairingStartDate( std::move( repairingStartDate ) ),
 | 
			
		||||
		  repairingFinishDate( std::move( repairingFinishDate ) ),
 | 
			
		||||
		  status( std::move( status ) ),
 | 
			
		||||
		  lostItemID( std::move( lostItemId ) ),
 | 
			
		||||
		  surveyorRecommandStatus( std::move( surveyorRecommandStatus ) )
 | 
			
		||||
	{
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
	RepairOrder( const RepairOrder & other )
 | 
			
		||||
		: branchName( other.branchName ),
 | 
			
		||||
		  orderNo( other.orderNo ),
 | 
			
		||||
		  orderType( other.orderType ),
 | 
			
		||||
		  notifyNo( other.notifyNo ),
 | 
			
		||||
		  damageArea( other.damageArea ),
 | 
			
		||||
		  damageDate( other.damageDate ),
 | 
			
		||||
		  generatingDate( other.generatingDate ),
 | 
			
		||||
		  policyNo( other.policyNo ),
 | 
			
		||||
		  policyNoJQX( other.policyNoJQX ),
 | 
			
		||||
		  plateNumber( other.plateNumber ),
 | 
			
		||||
		  brandName( other.brandName ),
 | 
			
		||||
		  isInsuranceObject( other.isInsuranceObject ),
 | 
			
		||||
		  isSuccess( other.isSuccess ),
 | 
			
		||||
		  recommandDealerCode( other.recommandDealerCode ),
 | 
			
		||||
		  recommandDealerName( other.recommandDealerName ),
 | 
			
		||||
		  recommandDealerCodeInNotify( other.recommandDealerCodeInNotify ),
 | 
			
		||||
		  recommandDealerNameInNotify( other.recommandDealerNameInNotify ),
 | 
			
		||||
		  recommandDealerNameInSurvey( other.recommandDealerNameInSurvey ),
 | 
			
		||||
		  agentName( other.agentName ),
 | 
			
		||||
		  surveyor( other.surveyor ),
 | 
			
		||||
		  checkDate( other.checkDate ),
 | 
			
		||||
		  repairingStartDate( other.repairingStartDate ),
 | 
			
		||||
		  repairingFinishDate( other.repairingFinishDate ),
 | 
			
		||||
		  status( other.status ),
 | 
			
		||||
		  lostItemID( other.lostItemID ),
 | 
			
		||||
		  surveyorRecommandStatus( other.surveyorRecommandStatus )
 | 
			
		||||
	{
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	RepairOrder( RepairOrder && other )
 | 
			
		||||
		: branchName( std::move( other.branchName ) ),
 | 
			
		||||
		  orderNo( std::move( other.orderNo ) ),
 | 
			
		||||
		  orderType( std::move( other.orderType ) ),
 | 
			
		||||
		  notifyNo( std::move( other.notifyNo ) ),
 | 
			
		||||
		  damageArea( std::move( other.damageArea ) ),
 | 
			
		||||
		  damageDate( std::move( other.damageDate ) ),
 | 
			
		||||
		  generatingDate( std::move( other.generatingDate ) ),
 | 
			
		||||
		  policyNo( std::move( other.policyNo ) ),
 | 
			
		||||
		  policyNoJQX( std::move( other.policyNoJQX ) ),
 | 
			
		||||
		  plateNumber( std::move( other.plateNumber ) ),
 | 
			
		||||
		  brandName( std::move( other.brandName ) ),
 | 
			
		||||
		  isInsuranceObject( std::move( other.isInsuranceObject ) ),
 | 
			
		||||
		  isSuccess( std::move( other.isSuccess ) ),
 | 
			
		||||
		  recommandDealerCode( std::move( other.recommandDealerCode ) ),
 | 
			
		||||
		  recommandDealerName( std::move( other.recommandDealerName ) ),
 | 
			
		||||
		  recommandDealerCodeInNotify( std::move( other.recommandDealerCodeInNotify ) ),
 | 
			
		||||
		  recommandDealerNameInNotify( std::move( other.recommandDealerNameInNotify ) ),
 | 
			
		||||
		  recommandDealerNameInSurvey( std::move( other.recommandDealerNameInSurvey ) ),
 | 
			
		||||
		  agentName( std::move( other.agentName ) ),
 | 
			
		||||
		  surveyor( std::move( other.surveyor ) ),
 | 
			
		||||
		  checkDate( std::move( other.checkDate ) ),
 | 
			
		||||
		  repairingStartDate( std::move( other.repairingStartDate ) ),
 | 
			
		||||
		  repairingFinishDate( std::move( other.repairingFinishDate ) ),
 | 
			
		||||
		  status( std::move( other.status ) ),
 | 
			
		||||
		  lostItemID( std::move( other.lostItemID ) ),
 | 
			
		||||
		  surveyorRecommandStatus( std::move( other.surveyorRecommandStatus ) )
 | 
			
		||||
	{
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	RepairOrder & operator=( const RepairOrder & other )
 | 
			
		||||
	{
 | 
			
		||||
		if ( this == &other )
 | 
			
		||||
			return *this;
 | 
			
		||||
		branchName                  = other.branchName;
 | 
			
		||||
		orderNo                     = other.orderNo;
 | 
			
		||||
		orderType                   = other.orderType;
 | 
			
		||||
		notifyNo                    = other.notifyNo;
 | 
			
		||||
		damageArea                  = other.damageArea;
 | 
			
		||||
		damageDate                  = other.damageDate;
 | 
			
		||||
		generatingDate              = other.generatingDate;
 | 
			
		||||
		policyNo                    = other.policyNo;
 | 
			
		||||
		policyNoJQX                 = other.policyNoJQX;
 | 
			
		||||
		plateNumber                 = other.plateNumber;
 | 
			
		||||
		brandName                   = other.brandName;
 | 
			
		||||
		isInsuranceObject           = other.isInsuranceObject;
 | 
			
		||||
		isSuccess                   = other.isSuccess;
 | 
			
		||||
		recommandDealerCode         = other.recommandDealerCode;
 | 
			
		||||
		recommandDealerName         = other.recommandDealerName;
 | 
			
		||||
		recommandDealerCodeInNotify = other.recommandDealerCodeInNotify;
 | 
			
		||||
		recommandDealerNameInNotify = other.recommandDealerNameInNotify;
 | 
			
		||||
		recommandDealerNameInSurvey = other.recommandDealerNameInSurvey;
 | 
			
		||||
		agentName                   = other.agentName;
 | 
			
		||||
		surveyor                    = other.surveyor;
 | 
			
		||||
		checkDate                   = other.checkDate;
 | 
			
		||||
		repairingStartDate          = other.repairingStartDate;
 | 
			
		||||
		repairingFinishDate         = other.repairingFinishDate;
 | 
			
		||||
		status                      = other.status;
 | 
			
		||||
		lostItemID                  = other.lostItemID;
 | 
			
		||||
		surveyorRecommandStatus     = other.surveyorRecommandStatus;
 | 
			
		||||
		return *this;
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	RepairOrder & operator=( RepairOrder && other )
 | 
			
		||||
	{
 | 
			
		||||
		if ( this == &other )
 | 
			
		||||
			return *this;
 | 
			
		||||
		branchName                  = std::move( other.branchName );
 | 
			
		||||
		orderNo                     = std::move( other.orderNo );
 | 
			
		||||
		orderType                   = std::move( other.orderType );
 | 
			
		||||
		notifyNo                    = std::move( other.notifyNo );
 | 
			
		||||
		damageArea                  = std::move( other.damageArea );
 | 
			
		||||
		damageDate                  = std::move( other.damageDate );
 | 
			
		||||
		generatingDate              = std::move( other.generatingDate );
 | 
			
		||||
		policyNo                    = std::move( other.policyNo );
 | 
			
		||||
		policyNoJQX                 = std::move( other.policyNoJQX );
 | 
			
		||||
		plateNumber                 = std::move( other.plateNumber );
 | 
			
		||||
		brandName                   = std::move( other.brandName );
 | 
			
		||||
		isInsuranceObject           = std::move( other.isInsuranceObject );
 | 
			
		||||
		isSuccess                   = std::move( other.isSuccess );
 | 
			
		||||
		recommandDealerCode         = std::move( other.recommandDealerCode );
 | 
			
		||||
		recommandDealerName         = std::move( other.recommandDealerName );
 | 
			
		||||
		recommandDealerCodeInNotify = std::move( other.recommandDealerCodeInNotify );
 | 
			
		||||
		recommandDealerNameInNotify = std::move( other.recommandDealerNameInNotify );
 | 
			
		||||
		recommandDealerNameInSurvey = std::move( other.recommandDealerNameInSurvey );
 | 
			
		||||
		agentName                   = std::move( other.agentName );
 | 
			
		||||
		surveyor                    = std::move( other.surveyor );
 | 
			
		||||
		checkDate                   = std::move( other.checkDate );
 | 
			
		||||
		repairingStartDate          = std::move( other.repairingStartDate );
 | 
			
		||||
		repairingFinishDate         = std::move( other.repairingFinishDate );
 | 
			
		||||
		status                      = std::move( other.status );
 | 
			
		||||
		lostItemID                  = std::move( other.lostItemID );
 | 
			
		||||
		surveyorRecommandStatus     = std::move( other.surveyorRecommandStatus );
 | 
			
		||||
		return *this;
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
	friend bool operator==( const RepairOrder & lhs, const RepairOrder & rhs )
 | 
			
		||||
	{
 | 
			
		||||
		return lhs.branchName == rhs.branchName
 | 
			
		||||
		       && lhs.orderNo == rhs.orderNo
 | 
			
		||||
		       && lhs.orderType == rhs.orderType
 | 
			
		||||
		       && lhs.notifyNo == rhs.notifyNo
 | 
			
		||||
		       && lhs.damageArea == rhs.damageArea
 | 
			
		||||
		       && lhs.damageDate == rhs.damageDate
 | 
			
		||||
		       && lhs.generatingDate == rhs.generatingDate
 | 
			
		||||
		       && lhs.policyNo == rhs.policyNo
 | 
			
		||||
		       && lhs.policyNoJQX == rhs.policyNoJQX
 | 
			
		||||
		       && lhs.plateNumber == rhs.plateNumber
 | 
			
		||||
		       && lhs.brandName == rhs.brandName
 | 
			
		||||
		       && lhs.isInsuranceObject == rhs.isInsuranceObject
 | 
			
		||||
		       && lhs.isSuccess == rhs.isSuccess
 | 
			
		||||
		       && lhs.recommandDealerCode == rhs.recommandDealerCode
 | 
			
		||||
		       && lhs.recommandDealerName == rhs.recommandDealerName
 | 
			
		||||
		       && lhs.recommandDealerCodeInNotify == rhs.recommandDealerCodeInNotify
 | 
			
		||||
		       && lhs.recommandDealerNameInNotify == rhs.recommandDealerNameInNotify
 | 
			
		||||
		       && lhs.recommandDealerNameInSurvey == rhs.recommandDealerNameInSurvey
 | 
			
		||||
		       && lhs.agentName == rhs.agentName
 | 
			
		||||
		       && lhs.surveyor == rhs.surveyor
 | 
			
		||||
		       && lhs.checkDate == rhs.checkDate
 | 
			
		||||
		       && lhs.repairingStartDate == rhs.repairingStartDate
 | 
			
		||||
		       && lhs.repairingFinishDate == rhs.repairingFinishDate
 | 
			
		||||
		       && lhs.status == rhs.status
 | 
			
		||||
		       && lhs.lostItemID == rhs.lostItemID
 | 
			
		||||
		       && lhs.surveyorRecommandStatus == rhs.surveyorRecommandStatus;
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	friend bool operator!=( const RepairOrder & lhs, const RepairOrder & rhs )
 | 
			
		||||
	{
 | 
			
		||||
		return !(lhs == rhs);
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	std::wstring getBranchName() const
 | 
			
		||||
	{
 | 
			
		||||
		return branchName;
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	void setBranchName( const std::wstring & branchName )
 | 
			
		||||
	{
 | 
			
		||||
		this->branchName = branchName;
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	std::wstring getOrderNo() const
 | 
			
		||||
	{
 | 
			
		||||
		return orderNo;
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	void setOrderNo( const std::wstring & orderNo )
 | 
			
		||||
	{
 | 
			
		||||
		this->orderNo = orderNo;
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	std::wstring getOrderType() const
 | 
			
		||||
	{
 | 
			
		||||
		return orderType;
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	void setOrderType( const std::wstring & orderType )
 | 
			
		||||
	{
 | 
			
		||||
		this->orderType = orderType;
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	std::wstring getNotifyNo() const
 | 
			
		||||
	{
 | 
			
		||||
		return notifyNo;
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	void setNotifyNo( const std::wstring & notifyNo )
 | 
			
		||||
	{
 | 
			
		||||
		this->notifyNo = notifyNo;
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	std::wstring getDamageArea() const
 | 
			
		||||
	{
 | 
			
		||||
		return damageArea;
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	void setDamageArea( const std::wstring & damageArea )
 | 
			
		||||
	{
 | 
			
		||||
		this->damageArea = damageArea;
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	std::wstring getDamageDate() const
 | 
			
		||||
	{
 | 
			
		||||
		return damageDate;
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	void setDamageDate( const std::wstring & damageDate )
 | 
			
		||||
	{
 | 
			
		||||
		this->damageDate = damageDate;
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	std::wstring getGeneratingDate() const
 | 
			
		||||
	{
 | 
			
		||||
		return generatingDate;
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	void setGeneratingDate( const std::wstring & generatingDate )
 | 
			
		||||
	{
 | 
			
		||||
		this->generatingDate = generatingDate;
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	std::wstring getPolicyNo() const
 | 
			
		||||
	{
 | 
			
		||||
		return policyNo;
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	void setPolicyNo( const std::wstring & policyNo )
 | 
			
		||||
	{
 | 
			
		||||
		this->policyNo = policyNo;
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	std::wstring getPolicyNoJqx() const
 | 
			
		||||
	{
 | 
			
		||||
		return policyNoJQX;
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	void setPolicyNoJqx( const std::wstring & policyNoJqx )
 | 
			
		||||
	{
 | 
			
		||||
		policyNoJQX = policyNoJqx;
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	std::wstring getPlateNumber() const
 | 
			
		||||
	{
 | 
			
		||||
		return plateNumber;
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	void setPlateNumber( const std::wstring & plateNumber )
 | 
			
		||||
	{
 | 
			
		||||
		this->plateNumber = plateNumber;
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	std::wstring getBrandName() const
 | 
			
		||||
	{
 | 
			
		||||
		return brandName;
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	void setBrandName( const std::wstring & brandName )
 | 
			
		||||
	{
 | 
			
		||||
		this->brandName = brandName;
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	std::wstring getIsInsuranceObject() const
 | 
			
		||||
	{
 | 
			
		||||
		return isInsuranceObject;
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	void setIsInsuranceObject( const std::wstring & isInsuranceObject )
 | 
			
		||||
	{
 | 
			
		||||
		this->isInsuranceObject = isInsuranceObject;
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	std::wstring getIsSuccess() const
 | 
			
		||||
	{
 | 
			
		||||
		return isSuccess;
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	void setIsSuccess( const std::wstring & isSuccess )
 | 
			
		||||
	{
 | 
			
		||||
		this->isSuccess = isSuccess;
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	std::wstring getRecommandDealerCode() const
 | 
			
		||||
	{
 | 
			
		||||
		return recommandDealerCode;
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	void setRecommandDealerCode( const std::wstring & recommandDealerCode )
 | 
			
		||||
	{
 | 
			
		||||
		this->recommandDealerCode = recommandDealerCode;
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	std::wstring getRecommandDealerName() const
 | 
			
		||||
	{
 | 
			
		||||
		return recommandDealerName;
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	void setRecommandDealerName( const std::wstring & recommandDealerName )
 | 
			
		||||
	{
 | 
			
		||||
		this->recommandDealerName = recommandDealerName;
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	std::wstring getRecommandDealerCodeInNotify() const
 | 
			
		||||
	{
 | 
			
		||||
		return recommandDealerCodeInNotify;
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	void setRecommandDealerCodeInNotify( const std::wstring & recommandDealerCodeInNotify )
 | 
			
		||||
	{
 | 
			
		||||
		this->recommandDealerCodeInNotify = recommandDealerCodeInNotify;
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	std::wstring getRecommandDealerNameInNotify() const
 | 
			
		||||
	{
 | 
			
		||||
		return recommandDealerNameInNotify;
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	void setRecommandDealerNameInNotify( const std::wstring & recommandDealerNameInNotify )
 | 
			
		||||
	{
 | 
			
		||||
		this->recommandDealerNameInNotify = recommandDealerNameInNotify;
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	std::wstring getRecommandDealerNameInSurvey() const
 | 
			
		||||
	{
 | 
			
		||||
		return recommandDealerNameInSurvey;
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	void setRecommandDealerNameInSurvey( const std::wstring & recommandDealerNameInSurvey )
 | 
			
		||||
	{
 | 
			
		||||
		this->recommandDealerNameInSurvey = recommandDealerNameInSurvey;
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	std::wstring getAgentName() const
 | 
			
		||||
	{
 | 
			
		||||
		return agentName;
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	void setAgentName( const std::wstring & agentName )
 | 
			
		||||
	{
 | 
			
		||||
		this->agentName = agentName;
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	std::wstring getSurveyor() const
 | 
			
		||||
	{
 | 
			
		||||
		return surveyor;
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	void setSurveyor( const std::wstring & surveyor )
 | 
			
		||||
	{
 | 
			
		||||
		this->surveyor = surveyor;
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	std::wstring getCheckDate() const
 | 
			
		||||
	{
 | 
			
		||||
		return checkDate;
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	void setCheckDate( const std::wstring & checkDate )
 | 
			
		||||
	{
 | 
			
		||||
		this->checkDate = checkDate;
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	std::wstring getRepairingStartDate() const
 | 
			
		||||
	{
 | 
			
		||||
		return repairingStartDate;
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	void setRepairingStartDate( const std::wstring & repairingStartDate )
 | 
			
		||||
	{
 | 
			
		||||
		this->repairingStartDate = repairingStartDate;
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	std::wstring getRepairingFinishDate() const
 | 
			
		||||
	{
 | 
			
		||||
		return repairingFinishDate;
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	void setRepairingFinishDate( const std::wstring & repairingFinishDate )
 | 
			
		||||
	{
 | 
			
		||||
		this->repairingFinishDate = repairingFinishDate;
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	std::wstring getStatus() const
 | 
			
		||||
	{
 | 
			
		||||
		return status;
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	void setStatus( const std::wstring & status )
 | 
			
		||||
	{
 | 
			
		||||
		this->status = status;
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	std::wstring getLostItemId() const
 | 
			
		||||
	{
 | 
			
		||||
		return lostItemID;
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	void setLostItemId( const std::wstring & lostItemId )
 | 
			
		||||
	{
 | 
			
		||||
		lostItemID = lostItemId;
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	std::wstring getSurveyorRecommandStatus() const
 | 
			
		||||
	{
 | 
			
		||||
		return surveyorRecommandStatus;
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	void setSurveyorRecommandStatus( const std::wstring & surveyorRecommandStatus )
 | 
			
		||||
	{
 | 
			
		||||
		this->surveyorRecommandStatus = surveyorRecommandStatus;
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
private:
 | 
			
		||||
	std::wstring branchName;
 | 
			
		||||
	std::wstring orderNo;
 | 
			
		||||
	std::wstring orderType;
 | 
			
		||||
	std::wstring notifyNo;
 | 
			
		||||
	std::wstring damageArea;
 | 
			
		||||
	std::wstring damageDate;
 | 
			
		||||
	std::wstring generatingDate;
 | 
			
		||||
	std::wstring policyNo;
 | 
			
		||||
	std::wstring policyNoJQX;
 | 
			
		||||
	std::wstring plateNumber;
 | 
			
		||||
	std::wstring brandName;
 | 
			
		||||
	std::wstring isInsuranceObject;
 | 
			
		||||
	std::wstring isSuccess;
 | 
			
		||||
	std::wstring recommandDealerCode;
 | 
			
		||||
	std::wstring recommandDealerName;
 | 
			
		||||
	std::wstring recommandDealerCodeInNotify;
 | 
			
		||||
	std::wstring recommandDealerNameInNotify;
 | 
			
		||||
	std::wstring recommandDealerNameInSurvey;
 | 
			
		||||
	std::wstring agentName;
 | 
			
		||||
	std::wstring surveyor; //查勘员
 | 
			
		||||
	std::wstring checkDate;
 | 
			
		||||
	std::wstring repairingStartDate;
 | 
			
		||||
	std::wstring repairingFinishDate;
 | 
			
		||||
	std::wstring status;
 | 
			
		||||
	std::wstring lostItemID;
 | 
			
		||||
	std::wstring surveyorRecommandStatus;
 | 
			
		||||
};
 | 
			
		||||
@@ -0,0 +1,225 @@
 | 
			
		||||
#pragma once
 | 
			
		||||
 | 
			
		||||
#include <string>
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
/************************************************
 | 
			
		||||
* \brief 送返修推荐表记录
 | 
			
		||||
************************************************/
 | 
			
		||||
class RepairSuggestionRecord
 | 
			
		||||
{
 | 
			
		||||
public:
 | 
			
		||||
	RepairSuggestionRecord( std::wstring orderNo,
 | 
			
		||||
	                        std::wstring orderType,
 | 
			
		||||
	                        std::wstring notifyNo,
 | 
			
		||||
	                        std::wstring suggestedCarDealerCode,
 | 
			
		||||
	                        std::wstring suggestedCarDealerName,
 | 
			
		||||
	                        std::wstring damageDate,
 | 
			
		||||
	                        std::wstring plateNumber,
 | 
			
		||||
	                        std::wstring brandName,
 | 
			
		||||
	                        std::wstring messageType,
 | 
			
		||||
	                        std::wstring messageSendingDate,
 | 
			
		||||
	                        std::wstring dataSource )
 | 
			
		||||
		: orderNo_( std::move( orderNo ) ),
 | 
			
		||||
		  orderType_( std::move( orderType ) ),
 | 
			
		||||
		  notifyNo_( std::move( notifyNo ) ),
 | 
			
		||||
		  suggestedCarDealerCode_( std::move( suggestedCarDealerCode ) ),
 | 
			
		||||
		  suggestedCarDealerName_( std::move( suggestedCarDealerName ) ),
 | 
			
		||||
		  damageDate_( std::move( damageDate ) ),
 | 
			
		||||
		  plateNumber_( std::move( plateNumber ) ),
 | 
			
		||||
		  brandName_( std::move( brandName ) ),
 | 
			
		||||
		  messageType_( std::move( messageType ) ),
 | 
			
		||||
		  messageSendingDate_( std::move( messageSendingDate ) ),
 | 
			
		||||
		  dataSource_( std::move( dataSource ) )
 | 
			
		||||
	{
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	RepairSuggestionRecord( const RepairSuggestionRecord & other )
 | 
			
		||||
		: orderNo_( other.orderNo_ ),
 | 
			
		||||
		  orderType_( other.orderType_ ),
 | 
			
		||||
		  notifyNo_( other.notifyNo_ ),
 | 
			
		||||
		  suggestedCarDealerCode_( other.suggestedCarDealerCode_ ),
 | 
			
		||||
		  suggestedCarDealerName_( other.suggestedCarDealerName_ ),
 | 
			
		||||
		  damageDate_( other.damageDate_ ),
 | 
			
		||||
		  plateNumber_( other.plateNumber_ ),
 | 
			
		||||
		  brandName_( other.brandName_ ),
 | 
			
		||||
		  messageType_( other.messageType_ ),
 | 
			
		||||
		  messageSendingDate_( other.messageSendingDate_ ),
 | 
			
		||||
		  dataSource_( other.dataSource_ )
 | 
			
		||||
	{
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	RepairSuggestionRecord( RepairSuggestionRecord && other )
 | 
			
		||||
		: orderNo_( std::move( other.orderNo_ ) ),
 | 
			
		||||
		  orderType_( std::move( other.orderType_ ) ),
 | 
			
		||||
		  notifyNo_( std::move( other.notifyNo_ ) ),
 | 
			
		||||
		  suggestedCarDealerCode_( std::move( other.suggestedCarDealerCode_ ) ),
 | 
			
		||||
		  suggestedCarDealerName_( std::move( other.suggestedCarDealerName_ ) ),
 | 
			
		||||
		  damageDate_( std::move( other.damageDate_ ) ),
 | 
			
		||||
		  plateNumber_( std::move( other.plateNumber_ ) ),
 | 
			
		||||
		  brandName_( std::move( other.brandName_ ) ),
 | 
			
		||||
		  messageType_( std::move( other.messageType_ ) ),
 | 
			
		||||
		  messageSendingDate_( std::move( other.messageSendingDate_ ) ),
 | 
			
		||||
		  dataSource_( std::move( other.dataSource_ ) )
 | 
			
		||||
	{
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	RepairSuggestionRecord & operator=( const RepairSuggestionRecord & other )
 | 
			
		||||
	{
 | 
			
		||||
		if ( this == &other )
 | 
			
		||||
			return *this;
 | 
			
		||||
		orderNo_                = other.orderNo_;
 | 
			
		||||
		orderType_              = other.orderType_;
 | 
			
		||||
		notifyNo_               = other.notifyNo_;
 | 
			
		||||
		suggestedCarDealerCode_ = other.suggestedCarDealerCode_;
 | 
			
		||||
		suggestedCarDealerName_ = other.suggestedCarDealerName_;
 | 
			
		||||
		damageDate_             = other.damageDate_;
 | 
			
		||||
		plateNumber_            = other.plateNumber_;
 | 
			
		||||
		brandName_              = other.brandName_;
 | 
			
		||||
		messageType_            = other.messageType_;
 | 
			
		||||
		messageSendingDate_     = other.messageSendingDate_;
 | 
			
		||||
		dataSource_             = other.dataSource_;
 | 
			
		||||
		return *this;
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	RepairSuggestionRecord & operator=( RepairSuggestionRecord && other )
 | 
			
		||||
	{
 | 
			
		||||
		if ( this == &other )
 | 
			
		||||
			return *this;
 | 
			
		||||
		orderNo_                = std::move( other.orderNo_ );
 | 
			
		||||
		orderType_              = std::move( other.orderType_ );
 | 
			
		||||
		notifyNo_               = std::move( other.notifyNo_ );
 | 
			
		||||
		suggestedCarDealerCode_ = std::move( other.suggestedCarDealerCode_ );
 | 
			
		||||
		suggestedCarDealerName_ = std::move( other.suggestedCarDealerName_ );
 | 
			
		||||
		damageDate_             = std::move( other.damageDate_ );
 | 
			
		||||
		plateNumber_            = std::move( other.plateNumber_ );
 | 
			
		||||
		brandName_              = std::move( other.brandName_ );
 | 
			
		||||
		messageType_            = std::move( other.messageType_ );
 | 
			
		||||
		messageSendingDate_     = std::move( other.messageSendingDate_ );
 | 
			
		||||
		dataSource_             = std::move( other.dataSource_ );
 | 
			
		||||
		return *this;
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	std::wstring getOrderNo() const
 | 
			
		||||
	{
 | 
			
		||||
		return orderNo_;
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	void setOrderNo( const std::wstring & orderNo )
 | 
			
		||||
	{
 | 
			
		||||
		orderNo_ = orderNo;
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	std::wstring getOrderType() const
 | 
			
		||||
	{
 | 
			
		||||
		return orderType_;
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	void setOrderType( const std::wstring & orderType )
 | 
			
		||||
	{
 | 
			
		||||
		orderType_ = orderType;
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	std::wstring getNotifyNo() const
 | 
			
		||||
	{
 | 
			
		||||
		return notifyNo_;
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	void setNotifyNo( const std::wstring & notifyNo )
 | 
			
		||||
	{
 | 
			
		||||
		notifyNo_ = notifyNo;
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	std::wstring getSuggestedCarDealerCode() const
 | 
			
		||||
	{
 | 
			
		||||
		return suggestedCarDealerCode_;
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	void setSuggestedCarDealerCode( const std::wstring & suggestedCarDealerCode )
 | 
			
		||||
	{
 | 
			
		||||
		suggestedCarDealerCode_ = suggestedCarDealerCode;
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	std::wstring getSuggestedCarDealerName() const
 | 
			
		||||
	{
 | 
			
		||||
		return suggestedCarDealerName_;
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	void setSuggestedCarDealerName( const std::wstring & suggestedCarDealerName )
 | 
			
		||||
	{
 | 
			
		||||
		suggestedCarDealerName_ = suggestedCarDealerName;
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	std::wstring getDamageDate() const
 | 
			
		||||
	{
 | 
			
		||||
		return damageDate_;
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	void setDamageDate( const std::wstring & damageDate )
 | 
			
		||||
	{
 | 
			
		||||
		damageDate_ = damageDate;
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	std::wstring getPlateNumber() const
 | 
			
		||||
	{
 | 
			
		||||
		return plateNumber_;
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	void setPlateNumber( const std::wstring & plateNumber )
 | 
			
		||||
	{
 | 
			
		||||
		plateNumber_ = plateNumber;
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	std::wstring getBrandName() const
 | 
			
		||||
	{
 | 
			
		||||
		return brandName_;
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	void setBrandName( const std::wstring & brandName )
 | 
			
		||||
	{
 | 
			
		||||
		brandName_ = brandName;
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	std::wstring getMessageType() const
 | 
			
		||||
	{
 | 
			
		||||
		return messageType_;
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	void setMessageType( const std::wstring & messageType )
 | 
			
		||||
	{
 | 
			
		||||
		messageType_ = messageType;
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	std::wstring getMessageSendingDate() const
 | 
			
		||||
	{
 | 
			
		||||
		return messageSendingDate_;
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	void setMessageSendingDate( const std::wstring & messageSendingDate )
 | 
			
		||||
	{
 | 
			
		||||
		messageSendingDate_ = messageSendingDate;
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	std::wstring getDataSource() const
 | 
			
		||||
	{
 | 
			
		||||
		return dataSource_;
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	void setDataSource( const std::wstring & dataSource )
 | 
			
		||||
	{
 | 
			
		||||
		dataSource_ = dataSource;
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
private:
 | 
			
		||||
	std::wstring orderNo_;
 | 
			
		||||
	std::wstring orderType_;
 | 
			
		||||
	std::wstring notifyNo_;
 | 
			
		||||
	std::wstring suggestedCarDealerCode_;
 | 
			
		||||
	std::wstring suggestedCarDealerName_;
 | 
			
		||||
	std::wstring damageDate_;
 | 
			
		||||
	std::wstring plateNumber_;
 | 
			
		||||
	std::wstring brandName_;
 | 
			
		||||
	std::wstring messageType_;
 | 
			
		||||
	std::wstring messageSendingDate_;
 | 
			
		||||
	std::wstring dataSource_;
 | 
			
		||||
};
 | 
			
		||||
@@ -0,0 +1,2 @@
 | 
			
		||||
 | 
			
		||||
#include "UserInfo.h"
 | 
			
		||||
@@ -0,0 +1,97 @@
 | 
			
		||||
//用户信息相关
 | 
			
		||||
#pragma once
 | 
			
		||||
#include <QString>
 | 
			
		||||
 | 
			
		||||
class UserInfo
 | 
			
		||||
{
 | 
			
		||||
public:
 | 
			
		||||
 | 
			
		||||
	UserInfo( const std::string & staffP13,
 | 
			
		||||
	          const std::string & staffName,
 | 
			
		||||
	          const std::string & staffPost )
 | 
			
		||||
		: staff_p13( staffP13 ),
 | 
			
		||||
		  staff_name( staffName ),
 | 
			
		||||
		  staff_post( staffPost )
 | 
			
		||||
	{
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
	UserInfo( const UserInfo & other )
 | 
			
		||||
		: staff_p13( other.staff_p13 ),
 | 
			
		||||
		  staff_name( other.staff_name ),
 | 
			
		||||
		  staff_post( other.staff_post )
 | 
			
		||||
	{
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	UserInfo( UserInfo && other )
 | 
			
		||||
		: staff_p13( std::move(other.staff_p13) ),
 | 
			
		||||
		  staff_name( std::move(other.staff_name) ),
 | 
			
		||||
		  staff_post( std::move(other.staff_post) )
 | 
			
		||||
	{
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	UserInfo & operator=( const UserInfo & other )
 | 
			
		||||
	{
 | 
			
		||||
		if ( this == &other )
 | 
			
		||||
			return *this;
 | 
			
		||||
		staff_p13  = other.staff_p13;
 | 
			
		||||
		staff_name = other.staff_name;
 | 
			
		||||
		staff_post = other.staff_post;
 | 
			
		||||
		return *this;
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	UserInfo & operator=( UserInfo && other )
 | 
			
		||||
	{
 | 
			
		||||
		if ( this == &other )
 | 
			
		||||
			return *this;
 | 
			
		||||
		staff_p13  = std::move( other.staff_p13 );
 | 
			
		||||
		staff_name = std::move( other.staff_name );
 | 
			
		||||
		staff_post = std::move( other.staff_post );
 | 
			
		||||
		return *this;
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
	friend void swap( UserInfo & lhs, UserInfo & rhs ) noexcept
 | 
			
		||||
	{
 | 
			
		||||
		using std::swap;
 | 
			
		||||
		swap( lhs.staff_p13, rhs.staff_p13 );
 | 
			
		||||
		swap( lhs.staff_name, rhs.staff_name );
 | 
			
		||||
		swap( lhs.staff_post, rhs.staff_post );
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
	std::string getStaffP13() const
 | 
			
		||||
	{
 | 
			
		||||
		return staff_p13;
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	void setStaffP13( const std::string & staffP13 )
 | 
			
		||||
	{
 | 
			
		||||
		staff_p13 = staffP13;
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	std::string getStaffName() const
 | 
			
		||||
	{
 | 
			
		||||
		return staff_name;
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	void setStaffName( const std::string & staffName )
 | 
			
		||||
	{
 | 
			
		||||
		staff_name = staffName;
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	std::string getStaffPost() const
 | 
			
		||||
	{
 | 
			
		||||
		return staff_post;
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	void setStaffPost( const std::string & staffPost )
 | 
			
		||||
	{
 | 
			
		||||
		staff_post = staffPost;
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
private:
 | 
			
		||||
	std::string staff_p13;
 | 
			
		||||
	std::string staff_name;
 | 
			
		||||
	std::string staff_post;
 | 
			
		||||
};
 | 
			
		||||
@@ -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;
 | 
			
		||||
							
								
								
									
										165
									
								
								code/cpp/car_dealer_util/source/Data/excel/excel.cpp
									
									
									
									
									
										Normal file
									
								
							
							
						
						@@ -0,0 +1,165 @@
 | 
			
		||||
#include <string>
 | 
			
		||||
#include <stdio.h>
 | 
			
		||||
#include <windows.h>
 | 
			
		||||
#include <stdexcept>
 | 
			
		||||
#include "excel.h"
 | 
			
		||||
 | 
			
		||||
using namespace std;
 | 
			
		||||
using namespace libxl;
 | 
			
		||||
 | 
			
		||||
void setKey( libxl::Book * pBook )
 | 
			
		||||
{
 | 
			
		||||
	if ( pBook != nullptr )
 | 
			
		||||
	{
 | 
			
		||||
		pBook->setKey( L"cpic", L"windows-202d21040bc4e70060bc6264a6ucu7i1" );
 | 
			
		||||
	}
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
void setKey( libxl::IBookT<char> * pBook )
 | 
			
		||||
{
 | 
			
		||||
	if (pBook != nullptr)
 | 
			
		||||
	{
 | 
			
		||||
		pBook->setKey("cpic", "windows-202d21040bc4e70060bc6264a6ucu7i1");
 | 
			
		||||
	}
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
std::wstring ReadCellStringFromXlsx( libxl::IBookT<wchar_t> * pBook,
 | 
			
		||||
                                     unsigned int             sheetIndex,
 | 
			
		||||
                                     unsigned int             rowIndex,
 | 
			
		||||
                                     unsigned int             colIndex,
 | 
			
		||||
                                     bool                     isInteger )
 | 
			
		||||
{
 | 
			
		||||
	using namespace libxl;
 | 
			
		||||
 | 
			
		||||
	std::wstring returnValue;
 | 
			
		||||
 | 
			
		||||
	int year   = 0;
 | 
			
		||||
	int month  = 0;
 | 
			
		||||
	int day    = 0;
 | 
			
		||||
	int hour   = 0;
 | 
			
		||||
	int min    = 0;
 | 
			
		||||
	int second = 0;
 | 
			
		||||
 | 
			
		||||
	//验证
 | 
			
		||||
	if ( pBook == nullptr )
 | 
			
		||||
	{
 | 
			
		||||
		throw std::logic_error( "ReadCellStringFromXlsx pSheet参数错误!" );
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	ISheetT<wchar_t> * pSheet   = pBook->getSheet( sheetIndex );
 | 
			
		||||
	CellType           cellType = pSheet->cellType( rowIndex, colIndex );
 | 
			
		||||
 | 
			
		||||
	//判断单元格类型
 | 
			
		||||
	switch ( cellType )
 | 
			
		||||
	{
 | 
			
		||||
		case CellType::CELLTYPE_BOOLEAN: //bool类型
 | 
			
		||||
			{
 | 
			
		||||
				returnValue = pSheet->readBool( rowIndex, colIndex ) ? L"true" : L"false";
 | 
			
		||||
 | 
			
		||||
				break;
 | 
			
		||||
			}
 | 
			
		||||
		case CellType::CELLTYPE_NUMBER: //数字类型,还得再判断一下是不是日期类型
 | 
			
		||||
			{
 | 
			
		||||
				double  cellValue = pSheet->readNum( rowIndex, colIndex );
 | 
			
		||||
				wchar_t buffer[50]; //生成字符串的缓冲区
 | 
			
		||||
 | 
			
		||||
				if ( pSheet->isDate( rowIndex, colIndex ) == true )
 | 
			
		||||
				{
 | 
			
		||||
					//是日期类型
 | 
			
		||||
					if ( pBook->dateUnpack( cellValue,
 | 
			
		||||
					                        &year,
 | 
			
		||||
					                        &month,
 | 
			
		||||
					                        &day,
 | 
			
		||||
					                        &hour,
 | 
			
		||||
					                        &min,
 | 
			
		||||
					                        &second ) == false )
 | 
			
		||||
					{
 | 
			
		||||
						throw std::runtime_error( "转换日期格式失败!" );
 | 
			
		||||
					}
 | 
			
		||||
 | 
			
		||||
					//排除bug
 | 
			
		||||
					if ( min >= 60 )
 | 
			
		||||
					{
 | 
			
		||||
						hour = hour + 1;
 | 
			
		||||
						min  = min - 60;
 | 
			
		||||
					}
 | 
			
		||||
 | 
			
		||||
					// if ( hour >= 24 )
 | 
			
		||||
					// {
 | 
			
		||||
					// 	day = day + 1;
 | 
			
		||||
					// 	hour = hour - 24;
 | 
			
		||||
					// }
 | 
			
		||||
					//
 | 
			
		||||
					// switch ( month )
 | 
			
		||||
					// {
 | 
			
		||||
					// case 1:
 | 
			
		||||
					// case 3:
 | 
			
		||||
					// case
 | 
			
		||||
					// }
 | 
			
		||||
 | 
			
		||||
					wsprintfW( buffer, L"%d-%.2d-%.2d %.2d:%.2d:%.2d", year, month, day, hour, min, second );
 | 
			
		||||
				}
 | 
			
		||||
				else
 | 
			
		||||
				{
 | 
			
		||||
					//是数字类型, 根据isInteger参数选择输出整型或者浮点型
 | 
			
		||||
					if ( isInteger == true )
 | 
			
		||||
					{
 | 
			
		||||
						wsprintfW( buffer, L"%d", static_cast<long>(cellValue) );
 | 
			
		||||
					}
 | 
			
		||||
					else
 | 
			
		||||
					{
 | 
			
		||||
						wsprintfW( buffer, L"%f", cellValue );
 | 
			
		||||
					}
 | 
			
		||||
				}
 | 
			
		||||
 | 
			
		||||
				returnValue = buffer;
 | 
			
		||||
 | 
			
		||||
				break;
 | 
			
		||||
			}
 | 
			
		||||
		case CELLTYPE_STRING: //字符串类型,要先判断一下读取的结果是不是空值
 | 
			
		||||
			{
 | 
			
		||||
				const wchar_t * pValue = pSheet->readStr( rowIndex, colIndex );
 | 
			
		||||
 | 
			
		||||
				if ( pValue != nullptr )
 | 
			
		||||
				{
 | 
			
		||||
					returnValue = pValue;
 | 
			
		||||
				}
 | 
			
		||||
 | 
			
		||||
				break;
 | 
			
		||||
			}
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	return returnValue;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
libxl::Sheet * getXlsxSheetByName( libxl::IBookT<wchar_t> * pBook, const std::wstring & sheetName )
 | 
			
		||||
{
 | 
			
		||||
	Sheet * pSheet        = nullptr;
 | 
			
		||||
	Sheet * pCurrentSheet = nullptr;
 | 
			
		||||
 | 
			
		||||
	if ( pBook == nullptr )
 | 
			
		||||
	{
 | 
			
		||||
		throw logic_error( "参数错误!" );
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	int sheetCount = pBook->sheetCount();
 | 
			
		||||
	int sheetIndex = 0;
 | 
			
		||||
 | 
			
		||||
	while ( sheetIndex < sheetCount )
 | 
			
		||||
	{
 | 
			
		||||
		pCurrentSheet = pBook->getSheet( sheetIndex );
 | 
			
		||||
 | 
			
		||||
		wstring currentSheetName = pCurrentSheet->name();
 | 
			
		||||
 | 
			
		||||
		if ( currentSheetName == sheetName )
 | 
			
		||||
		{
 | 
			
		||||
			pSheet = pCurrentSheet;
 | 
			
		||||
 | 
			
		||||
			break;
 | 
			
		||||
		}
 | 
			
		||||
 | 
			
		||||
		sheetIndex++;
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	return pSheet;
 | 
			
		||||
}
 | 
			
		||||
							
								
								
									
										37
									
								
								code/cpp/car_dealer_util/source/Data/excel/excel.h
									
									
									
									
									
										Normal file
									
								
							
							
						
						@@ -0,0 +1,37 @@
 | 
			
		||||
#pragma once
 | 
			
		||||
#ifndef EXCEL_H_
 | 
			
		||||
#define EXCEL_H_
 | 
			
		||||
 | 
			
		||||
#include <libxl.h>
 | 
			
		||||
 | 
			
		||||
/************************************************
 | 
			
		||||
* \brief 注册libxl产品
 | 
			
		||||
* \param pBook 
 | 
			
		||||
************************************************/
 | 
			
		||||
void setKey( libxl::Book * pBook );
 | 
			
		||||
void setKey( libxl::IBookT<char> * pBook );
 | 
			
		||||
 | 
			
		||||
/************************************************
 | 
			
		||||
* \brief 从xlsx文件单元格中读取数据,以字符串为返回值。
 | 
			
		||||
* \param pBook libxl的Book对象。
 | 
			
		||||
* \param sheetIndex sheet的索引值
 | 
			
		||||
* \param rowIndex 行号
 | 
			
		||||
* \param colIndex 列号
 | 
			
		||||
* \param isInteger 单元格为数字类型时,选择是输出整形还是浮点型字符串
 | 
			
		||||
* \return 返回的字符串
 | 
			
		||||
************************************************/
 | 
			
		||||
std::wstring ReadCellStringFromXlsx( libxl::IBookT<wchar_t> * pBook,
 | 
			
		||||
                                     unsigned int             sheetIndex,
 | 
			
		||||
                                     unsigned int             rowIndex,
 | 
			
		||||
                                     unsigned int             colIndex,
 | 
			
		||||
                                     bool                     isInteger );
 | 
			
		||||
 | 
			
		||||
/************************************************
 | 
			
		||||
* \brief 通过名称获取sheet
 | 
			
		||||
* \param sheetName 
 | 
			
		||||
* \return 
 | 
			
		||||
************************************************/
 | 
			
		||||
libxl::Sheet * getXlsxSheetByName( libxl::IBookT<wchar_t> * pBook, const std::wstring & sheetName );
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
#endif
 | 
			
		||||
							
								
								
									
										87
									
								
								code/cpp/car_dealer_util/source/Data/query/query_user.cpp
									
									
									
									
									
										Normal file
									
								
							
							
						
						@@ -0,0 +1,87 @@
 | 
			
		||||
#include "query_user.h"
 | 
			
		||||
 | 
			
		||||
#include <stdexcept>
 | 
			
		||||
#include <ocilib.h>
 | 
			
		||||
#include "../../db/ocilib/db_oper.h"
 | 
			
		||||
#include "../Datastructure/UserInfo/UserInfo.h"
 | 
			
		||||
#include <ocilib.hpp>
 | 
			
		||||
 | 
			
		||||
using namespace std;
 | 
			
		||||
 | 
			
		||||
UserInfo queryUserInfo( const string & userName,
 | 
			
		||||
                        const string & password,
 | 
			
		||||
                        const string & tnsName,
 | 
			
		||||
                        const string & staffP13 )
 | 
			
		||||
{
 | 
			
		||||
	OCI_Connection * pConn      = nullptr;
 | 
			
		||||
	OCI_Statement *  pStmt      = nullptr;
 | 
			
		||||
	OCI_Resultset *  pResult    = nullptr;
 | 
			
		||||
	int              returnCode = 0;
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
	string sqlQueryStaff =
 | 
			
		||||
			"SELECT a.staff_p13, a.staff_name, b.staff_post \n"
 | 
			
		||||
			"FROM staff_info a, \n"
 | 
			
		||||
			"staff_post_code b \n"
 | 
			
		||||
			"WHERE a.staff_post_code = b.staff_post_code \n"
 | 
			
		||||
			"AND a.staff_p13 = :p13";
 | 
			
		||||
 | 
			
		||||
	returnCode = OCI_Initialize( l_error_handler, nullptr, OCI_ENV_DEFAULT );
 | 
			
		||||
 | 
			
		||||
	if ( static_cast<bool>(returnCode) == false )
 | 
			
		||||
	{
 | 
			
		||||
		string errorMessage( "ocilib初始化错误:" );
 | 
			
		||||
		errorMessage.append( get_last_error_message() );
 | 
			
		||||
 | 
			
		||||
		throw runtime_error( errorMessage );
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	try
 | 
			
		||||
	{
 | 
			
		||||
		pConn = OCI_ConnectionCreate( tnsName.c_str(),
 | 
			
		||||
		                              userName.c_str(),
 | 
			
		||||
		                              password.c_str(),
 | 
			
		||||
		                              OCI_SESSION_DEFAULT );
 | 
			
		||||
	}
 | 
			
		||||
	catch ( runtime_error & error )
 | 
			
		||||
	{
 | 
			
		||||
		OCI_Cleanup();
 | 
			
		||||
 | 
			
		||||
		throw error;
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	try
 | 
			
		||||
	{
 | 
			
		||||
		pStmt = OCI_StatementCreate( pConn );
 | 
			
		||||
 | 
			
		||||
		OCI_Prepare(pStmt, sqlQueryStaff.c_str());
 | 
			
		||||
		OCI_AllowRebinding( pStmt, true );
 | 
			
		||||
		OCI_BindString( pStmt, ":p13", const_cast<otext*>(staffP13.c_str()), staffP13.size() );
 | 
			
		||||
		
 | 
			
		||||
		OCI_Execute( pStmt );
 | 
			
		||||
		
 | 
			
		||||
		pResult = OCI_GetResultset( pStmt );
 | 
			
		||||
 | 
			
		||||
		//检查结果集,如果没有返回,则说明没有此用户	
 | 
			
		||||
		if ( OCI_FetchNext( pResult ) == false )
 | 
			
		||||
		{
 | 
			
		||||
			throw runtime_error( "用户不存在!" );
 | 
			
		||||
		}
 | 
			
		||||
	}
 | 
			
		||||
	catch ( runtime_error & error )
 | 
			
		||||
	{
 | 
			
		||||
		OCI_ConnectionFree( pConn );
 | 
			
		||||
		OCI_Cleanup();
 | 
			
		||||
 | 
			
		||||
		throw error;
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	UserInfo info( OCI_GetString( pResult, 1 ),
 | 
			
		||||
	               OCI_GetString( pResult, 2 ),
 | 
			
		||||
	               OCI_GetString( pResult, 3 ) );
 | 
			
		||||
 | 
			
		||||
	OCI_ConnectionFree(pConn);
 | 
			
		||||
	OCI_Cleanup();
 | 
			
		||||
 | 
			
		||||
	return info;
 | 
			
		||||
}
 | 
			
		||||
							
								
								
									
										10
									
								
								code/cpp/car_dealer_util/source/Data/query/query_user.h
									
									
									
									
									
										Normal file
									
								
							
							
						
						@@ -0,0 +1,10 @@
 | 
			
		||||
//查询用户、权限等相关数据
 | 
			
		||||
#pragma once
 | 
			
		||||
 | 
			
		||||
#include <iostream>
 | 
			
		||||
#include "../Datastructure/UserInfo/UserInfo.h"
 | 
			
		||||
 | 
			
		||||
UserInfo queryUserInfo( const std::string & userName,
 | 
			
		||||
                        const std::string & password,
 | 
			
		||||
                        const std::string & tnsName,
 | 
			
		||||
                        const std::string & staffP13 );
 | 
			
		||||
| 
		 After Width: | Height: | Size: 21 KiB  | 
							
								
								
									
										
											BIN
										
									
								
								code/cpp/car_dealer_util/source/Resources/8218_box1.png
									
									
									
									
									
										Normal file
									
								
							
							
						
						| 
		 After Width: | Height: | Size: 27 KiB  | 
							
								
								
									
										
											BIN
										
									
								
								code/cpp/car_dealer_util/source/Resources/CNY_Red.png
									
									
									
									
									
										Normal file
									
								
							
							
						
						| 
		 After Width: | Height: | Size: 21 KiB  | 
							
								
								
									
										
											BIN
										
									
								
								code/cpp/car_dealer_util/source/Resources/CPIC.png
									
									
									
									
									
										Normal file
									
								
							
							
						
						| 
		 After Width: | Height: | Size: 37 KiB  | 
							
								
								
									
										
											BIN
										
									
								
								code/cpp/car_dealer_util/source/Resources/CPIC透明.png
									
									
									
									
									
										Normal file
									
								
							
							
						
						| 
		 After Width: | Height: | Size: 46 KiB  | 
							
								
								
									
										
											BIN
										
									
								
								code/cpp/car_dealer_util/source/Resources/app.ico
									
									
									
									
									
										Normal file
									
								
							
							
						
						| 
		 After Width: | Height: | Size: 66 KiB  | 
							
								
								
									
										
											BIN
										
									
								
								code/cpp/car_dealer_util/source/Resources/car.png
									
									
									
									
									
										Normal file
									
								
							
							
						
						| 
		 After Width: | Height: | Size: 14 KiB  | 
							
								
								
									
										
											BIN
										
									
								
								code/cpp/car_dealer_util/source/Resources/car2.png
									
									
									
									
									
										Normal file
									
								
							
							
						
						| 
		 After Width: | Height: | Size: 34 KiB  | 
							
								
								
									
										
											BIN
										
									
								
								code/cpp/car_dealer_util/source/Resources/cat.png
									
									
									
									
									
										Normal file
									
								
							
							
						
						| 
		 After Width: | Height: | Size: 8.4 KiB  | 
							
								
								
									
										
											BIN
										
									
								
								code/cpp/car_dealer_util/source/Resources/clean.png
									
									
									
									
									
										Normal file
									
								
							
							
						
						| 
		 After Width: | Height: | Size: 12 KiB  | 
							
								
								
									
										
											BIN
										
									
								
								code/cpp/car_dealer_util/source/Resources/dec.png
									
									
									
									
									
										Normal file
									
								
							
							
						
						| 
		 After Width: | Height: | Size: 542 B  | 
							
								
								
									
										
											BIN
										
									
								
								code/cpp/car_dealer_util/source/Resources/edit.png
									
									
									
									
									
										Normal file
									
								
							
							
						
						| 
		 After Width: | Height: | Size: 28 KiB  | 
							
								
								
									
										
											BIN
										
									
								
								code/cpp/car_dealer_util/source/Resources/excel.png
									
									
									
									
									
										Normal file
									
								
							
							
						
						| 
		 After Width: | Height: | Size: 6.2 KiB  | 
							
								
								
									
										
											BIN
										
									
								
								code/cpp/car_dealer_util/source/Resources/face.png
									
									
									
									
									
										Normal file
									
								
							
							
						
						| 
		 After Width: | Height: | Size: 24 KiB  | 
							
								
								
									
										
											BIN
										
									
								
								code/cpp/car_dealer_util/source/Resources/find.png
									
									
									
									
									
										Normal file
									
								
							
							
						
						| 
		 After Width: | Height: | Size: 15 KiB  | 
							
								
								
									
										
											BIN
										
									
								
								code/cpp/car_dealer_util/source/Resources/folder.png
									
									
									
									
									
										Normal file
									
								
							
							
						
						| 
		 After Width: | Height: | Size: 5.2 KiB  | 
							
								
								
									
										
											BIN
										
									
								
								code/cpp/car_dealer_util/source/Resources/gear.png
									
									
									
									
									
										Normal file
									
								
							
							
						
						| 
		 After Width: | Height: | Size: 21 KiB  | 
							
								
								
									
										
											BIN
										
									
								
								code/cpp/car_dealer_util/source/Resources/login.png
									
									
									
									
									
										Normal file
									
								
							
							
						
						| 
		 After Width: | Height: | Size: 28 KiB  | 
							
								
								
									
										
											BIN
										
									
								
								code/cpp/car_dealer_util/source/Resources/manager.png
									
									
									
									
									
										Normal file
									
								
							
							
						
						| 
		 After Width: | Height: | Size: 25 KiB  | 
							
								
								
									
										
											BIN
										
									
								
								code/cpp/car_dealer_util/source/Resources/new.png
									
									
									
									
									
										Normal file
									
								
							
							
						
						| 
		 After Width: | Height: | Size: 28 KiB  | 
							
								
								
									
										
											BIN
										
									
								
								code/cpp/car_dealer_util/source/Resources/ok.png
									
									
									
									
									
										Normal file
									
								
							
							
						
						| 
		 After Width: | Height: | Size: 16 KiB  | 
							
								
								
									
										
											BIN
										
									
								
								code/cpp/car_dealer_util/source/Resources/option.png
									
									
									
									
									
										Normal file
									
								
							
							
						
						| 
		 After Width: | Height: | Size: 21 KiB  | 
							
								
								
									
										
											BIN
										
									
								
								code/cpp/car_dealer_util/source/Resources/plus.png
									
									
									
									
									
										Normal file
									
								
							
							
						
						| 
		 After Width: | Height: | Size: 952 B  | 
							
								
								
									
										
											BIN
										
									
								
								code/cpp/car_dealer_util/source/Resources/print.png
									
									
									
									
									
										Normal file
									
								
							
							
						
						| 
		 After Width: | Height: | Size: 22 KiB  | 
							
								
								
									
										
											BIN
										
									
								
								code/cpp/car_dealer_util/source/Resources/quit.png
									
									
									
									
									
										Normal file
									
								
							
							
						
						| 
		 After Width: | Height: | Size: 24 KiB  | 
							
								
								
									
										
											BIN
										
									
								
								code/cpp/car_dealer_util/source/Resources/save.png
									
									
									
									
									
										Normal file
									
								
							
							
						
						| 
		 After Width: | Height: | Size: 14 KiB  | 
							
								
								
									
										
											BIN
										
									
								
								code/cpp/car_dealer_util/source/Resources/save2.png
									
									
									
									
									
										Normal file
									
								
							
							
						
						| 
		 After Width: | Height: | Size: 7.5 KiB  | 
							
								
								
									
										
											BIN
										
									
								
								code/cpp/car_dealer_util/source/Resources/telephone.png
									
									
									
									
									
										Normal file
									
								
							
							
						
						| 
		 After Width: | Height: | Size: 6.6 KiB  | 
							
								
								
									
										
											BIN
										
									
								
								code/cpp/car_dealer_util/source/Resources/tongji.png
									
									
									
									
									
										Normal file
									
								
							
							
						
						| 
		 After Width: | Height: | Size: 29 KiB  | 
							
								
								
									
										
											BIN
										
									
								
								code/cpp/car_dealer_util/source/Resources/x.png
									
									
									
									
									
										Normal file
									
								
							
							
						
						| 
		 After Width: | Height: | Size: 24 KiB  | 
@@ -0,0 +1,33 @@
 | 
			
		||||
#include "QCarDealerAchievementWidget.h"
 | 
			
		||||
 | 
			
		||||
QCarDealerAchievementWidget::QCarDealerAchievementWidget(QWidget *parent)
 | 
			
		||||
	: QWidget(parent)
 | 
			
		||||
{
 | 
			
		||||
	ui.setupUi(this);
 | 
			
		||||
 | 
			
		||||
	init();
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
QCarDealerAchievementWidget::~QCarDealerAchievementWidget()
 | 
			
		||||
{
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
void QCarDealerAchievementWidget::init()
 | 
			
		||||
{
 | 
			
		||||
	initData();
 | 
			
		||||
	initWidgets();
 | 
			
		||||
	initSignal();
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
void QCarDealerAchievementWidget::initData()
 | 
			
		||||
{
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
void QCarDealerAchievementWidget::initWidgets()
 | 
			
		||||
{
 | 
			
		||||
	setLayout(ui.pLayoutMain);
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
void QCarDealerAchievementWidget::initSignal()
 | 
			
		||||
{
 | 
			
		||||
}
 | 
			
		||||
@@ -0,0 +1,22 @@
 | 
			
		||||
#pragma once
 | 
			
		||||
 | 
			
		||||
#include <QWidget>
 | 
			
		||||
#include "ui_QCarDealerAchievementWidget.h"
 | 
			
		||||
 | 
			
		||||
class QCarDealerAchievementWidget : public QWidget
 | 
			
		||||
{
 | 
			
		||||
	Q_OBJECT
 | 
			
		||||
 | 
			
		||||
public:
 | 
			
		||||
	QCarDealerAchievementWidget(QWidget *parent = Q_NULLPTR);
 | 
			
		||||
	~QCarDealerAchievementWidget();
 | 
			
		||||
 | 
			
		||||
private:
 | 
			
		||||
	void init();
 | 
			
		||||
	void initData();
 | 
			
		||||
	void initWidgets();
 | 
			
		||||
	void initSignal();
 | 
			
		||||
 | 
			
		||||
private:
 | 
			
		||||
	Ui::QCarDealerAchievementWidget ui;
 | 
			
		||||
};
 | 
			
		||||
@@ -0,0 +1,165 @@
 | 
			
		||||
<?xml version="1.0" encoding="UTF-8"?>
 | 
			
		||||
<ui version="4.0">
 | 
			
		||||
 <class>QCarDealerAchievementWidget</class>
 | 
			
		||||
 <widget class="QWidget" name="QCarDealerAchievementWidget">
 | 
			
		||||
  <property name="geometry">
 | 
			
		||||
   <rect>
 | 
			
		||||
    <x>0</x>
 | 
			
		||||
    <y>0</y>
 | 
			
		||||
    <width>680</width>
 | 
			
		||||
    <height>497</height>
 | 
			
		||||
   </rect>
 | 
			
		||||
  </property>
 | 
			
		||||
  <property name="windowTitle">
 | 
			
		||||
   <string>QCarDealerAchievementWidget</string>
 | 
			
		||||
  </property>
 | 
			
		||||
  <widget class="QWidget" name="layoutWidget">
 | 
			
		||||
   <property name="geometry">
 | 
			
		||||
    <rect>
 | 
			
		||||
     <x>80</x>
 | 
			
		||||
     <y>40</y>
 | 
			
		||||
     <width>258</width>
 | 
			
		||||
     <height>240</height>
 | 
			
		||||
    </rect>
 | 
			
		||||
   </property>
 | 
			
		||||
   <layout class="QVBoxLayout" name="pLayoutMain">
 | 
			
		||||
    <property name="leftMargin">
 | 
			
		||||
     <number>5</number>
 | 
			
		||||
    </property>
 | 
			
		||||
    <property name="topMargin">
 | 
			
		||||
     <number>5</number>
 | 
			
		||||
    </property>
 | 
			
		||||
    <property name="rightMargin">
 | 
			
		||||
     <number>5</number>
 | 
			
		||||
    </property>
 | 
			
		||||
    <item>
 | 
			
		||||
     <layout class="QHBoxLayout" name="horizontalLayout">
 | 
			
		||||
      <item>
 | 
			
		||||
       <spacer name="horizontalSpacer">
 | 
			
		||||
        <property name="orientation">
 | 
			
		||||
         <enum>Qt::Horizontal</enum>
 | 
			
		||||
        </property>
 | 
			
		||||
        <property name="sizeHint" stdset="0">
 | 
			
		||||
         <size>
 | 
			
		||||
          <width>40</width>
 | 
			
		||||
          <height>20</height>
 | 
			
		||||
         </size>
 | 
			
		||||
        </property>
 | 
			
		||||
       </spacer>
 | 
			
		||||
      </item>
 | 
			
		||||
      <item>
 | 
			
		||||
       <widget class="QToolButton" name="toolButton">
 | 
			
		||||
        <property name="text">
 | 
			
		||||
         <string>导入</string>
 | 
			
		||||
        </property>
 | 
			
		||||
        <property name="icon">
 | 
			
		||||
         <iconset>
 | 
			
		||||
          <normalon>:/QMainFrame/Resources/excel.png</normalon>
 | 
			
		||||
         </iconset>
 | 
			
		||||
        </property>
 | 
			
		||||
        <property name="iconSize">
 | 
			
		||||
         <size>
 | 
			
		||||
          <width>32</width>
 | 
			
		||||
          <height>32</height>
 | 
			
		||||
         </size>
 | 
			
		||||
        </property>
 | 
			
		||||
        <property name="toolButtonStyle">
 | 
			
		||||
         <enum>Qt::ToolButtonTextBesideIcon</enum>
 | 
			
		||||
        </property>
 | 
			
		||||
       </widget>
 | 
			
		||||
      </item>
 | 
			
		||||
     </layout>
 | 
			
		||||
    </item>
 | 
			
		||||
    <item>
 | 
			
		||||
     <widget class="QTableWidget" name="tableWidget">
 | 
			
		||||
      <column>
 | 
			
		||||
       <property name="text">
 | 
			
		||||
        <string>年度</string>
 | 
			
		||||
       </property>
 | 
			
		||||
       <property name="textAlignment">
 | 
			
		||||
        <set>AlignCenter</set>
 | 
			
		||||
       </property>
 | 
			
		||||
      </column>
 | 
			
		||||
      <column>
 | 
			
		||||
       <property name="text">
 | 
			
		||||
        <string>月份</string>
 | 
			
		||||
       </property>
 | 
			
		||||
       <property name="textAlignment">
 | 
			
		||||
        <set>AlignCenter</set>
 | 
			
		||||
       </property>
 | 
			
		||||
      </column>
 | 
			
		||||
      <column>
 | 
			
		||||
       <property name="text">
 | 
			
		||||
        <string>车商代码</string>
 | 
			
		||||
       </property>
 | 
			
		||||
       <property name="textAlignment">
 | 
			
		||||
        <set>AlignCenter</set>
 | 
			
		||||
       </property>
 | 
			
		||||
      </column>
 | 
			
		||||
      <column>
 | 
			
		||||
       <property name="text">
 | 
			
		||||
        <string>车商名称</string>
 | 
			
		||||
       </property>
 | 
			
		||||
       <property name="textAlignment">
 | 
			
		||||
        <set>AlignCenter</set>
 | 
			
		||||
       </property>
 | 
			
		||||
      </column>
 | 
			
		||||
      <column>
 | 
			
		||||
       <property name="text">
 | 
			
		||||
        <string>店内双签产值(万元)</string>
 | 
			
		||||
       </property>
 | 
			
		||||
       <property name="textAlignment">
 | 
			
		||||
        <set>AlignCenter</set>
 | 
			
		||||
       </property>
 | 
			
		||||
      </column>
 | 
			
		||||
      <column>
 | 
			
		||||
       <property name="text">
 | 
			
		||||
        <string>店内新车开票数</string>
 | 
			
		||||
       </property>
 | 
			
		||||
       <property name="textAlignment">
 | 
			
		||||
        <set>AlignCenter</set>
 | 
			
		||||
       </property>
 | 
			
		||||
      </column>
 | 
			
		||||
      <column>
 | 
			
		||||
       <property name="text">
 | 
			
		||||
        <string>我司新车签单台次</string>
 | 
			
		||||
       </property>
 | 
			
		||||
       <property name="textAlignment">
 | 
			
		||||
        <set>AlignCenter</set>
 | 
			
		||||
       </property>
 | 
			
		||||
      </column>
 | 
			
		||||
      <column>
 | 
			
		||||
       <property name="text">
 | 
			
		||||
        <string>人保新车签单台次</string>
 | 
			
		||||
       </property>
 | 
			
		||||
       <property name="textAlignment">
 | 
			
		||||
        <set>AlignCenter</set>
 | 
			
		||||
       </property>
 | 
			
		||||
      </column>
 | 
			
		||||
      <column>
 | 
			
		||||
       <property name="text">
 | 
			
		||||
        <string>平安新车签单台次</string>
 | 
			
		||||
       </property>
 | 
			
		||||
       <property name="textAlignment">
 | 
			
		||||
        <set>AlignCenter</set>
 | 
			
		||||
       </property>
 | 
			
		||||
      </column>
 | 
			
		||||
      <column>
 | 
			
		||||
       <property name="text">
 | 
			
		||||
        <string>其他保险公司新车签单台次</string>
 | 
			
		||||
       </property>
 | 
			
		||||
       <property name="textAlignment">
 | 
			
		||||
        <set>AlignCenter</set>
 | 
			
		||||
       </property>
 | 
			
		||||
      </column>
 | 
			
		||||
     </widget>
 | 
			
		||||
    </item>
 | 
			
		||||
   </layout>
 | 
			
		||||
  </widget>
 | 
			
		||||
 </widget>
 | 
			
		||||
 <layoutdefault spacing="6" margin="11"/>
 | 
			
		||||
 <resources>
 | 
			
		||||
  <include location="../../../resource.qrc"/>
 | 
			
		||||
 </resources>
 | 
			
		||||
 <connections/>
 | 
			
		||||
</ui>
 | 
			
		||||
@@ -0,0 +1,33 @@
 | 
			
		||||
#include "QCarDealerSchemaWidget.h"
 | 
			
		||||
 | 
			
		||||
QCarDealerSchemaWidget::QCarDealerSchemaWidget(QWidget *parent)
 | 
			
		||||
	: QWidget(parent)
 | 
			
		||||
{
 | 
			
		||||
	ui.setupUi(this);
 | 
			
		||||
 | 
			
		||||
	init();
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
QCarDealerSchemaWidget::~QCarDealerSchemaWidget()
 | 
			
		||||
{
 | 
			
		||||
	
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
void QCarDealerSchemaWidget::init()
 | 
			
		||||
{
 | 
			
		||||
	initData();
 | 
			
		||||
	initWidgets();
 | 
			
		||||
	initSignal();
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
void QCarDealerSchemaWidget::initData()
 | 
			
		||||
{
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
void QCarDealerSchemaWidget::initWidgets()
 | 
			
		||||
{
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
void QCarDealerSchemaWidget::initSignal()
 | 
			
		||||
{
 | 
			
		||||
}
 | 
			
		||||
@@ -0,0 +1,22 @@
 | 
			
		||||
#pragma once
 | 
			
		||||
 | 
			
		||||
#include <QWidget>
 | 
			
		||||
#include "ui_QCarDealerSchemaWidget.h"
 | 
			
		||||
 | 
			
		||||
class QCarDealerSchemaWidget : public QWidget
 | 
			
		||||
{
 | 
			
		||||
	Q_OBJECT
 | 
			
		||||
 | 
			
		||||
public:
 | 
			
		||||
	QCarDealerSchemaWidget(QWidget *parent = Q_NULLPTR);
 | 
			
		||||
	~QCarDealerSchemaWidget();
 | 
			
		||||
 | 
			
		||||
private:
 | 
			
		||||
	void init();
 | 
			
		||||
	void initData();
 | 
			
		||||
	void initWidgets();
 | 
			
		||||
	void initSignal();
 | 
			
		||||
 | 
			
		||||
private:
 | 
			
		||||
	Ui::QCarDealerSchemaWidget ui;
 | 
			
		||||
};
 | 
			
		||||
@@ -0,0 +1,20 @@
 | 
			
		||||
<?xml version="1.0" encoding="UTF-8"?>
 | 
			
		||||
<ui version="4.0">
 | 
			
		||||
 <class>QCarDealerSchemaWidget</class>
 | 
			
		||||
 <widget class="QWidget" name="QCarDealerSchemaWidget">
 | 
			
		||||
  <property name="geometry">
 | 
			
		||||
   <rect>
 | 
			
		||||
    <x>0</x>
 | 
			
		||||
    <y>0</y>
 | 
			
		||||
    <width>725</width>
 | 
			
		||||
    <height>508</height>
 | 
			
		||||
   </rect>
 | 
			
		||||
  </property>
 | 
			
		||||
  <property name="windowTitle">
 | 
			
		||||
   <string>QCarDealerSchemaWidget</string>
 | 
			
		||||
  </property>
 | 
			
		||||
 </widget>
 | 
			
		||||
 <layoutdefault spacing="6" margin="11"/>
 | 
			
		||||
 <resources/>
 | 
			
		||||
 <connections/>
 | 
			
		||||
</ui>
 | 
			
		||||
@@ -0,0 +1,33 @@
 | 
			
		||||
#include "QDataManagementWidget.h"
 | 
			
		||||
 | 
			
		||||
QDataManagementWidget::QDataManagementWidget( QWidget * parent )
 | 
			
		||||
	: QWidget( parent )
 | 
			
		||||
{
 | 
			
		||||
	ui.setupUi( this );
 | 
			
		||||
 | 
			
		||||
	init();
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
QDataManagementWidget::~QDataManagementWidget()
 | 
			
		||||
{
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
void QDataManagementWidget::init()
 | 
			
		||||
{
 | 
			
		||||
	initData();
 | 
			
		||||
	initWidgets();
 | 
			
		||||
	initSignal();
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
void QDataManagementWidget::initData()
 | 
			
		||||
{
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
void QDataManagementWidget::initWidgets()
 | 
			
		||||
{
 | 
			
		||||
	setLayout( ui.pLayoutMain );
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
void QDataManagementWidget::initSignal()
 | 
			
		||||
{
 | 
			
		||||
}
 | 
			
		||||
@@ -0,0 +1,22 @@
 | 
			
		||||
#pragma once
 | 
			
		||||
 | 
			
		||||
#include <QWidget>
 | 
			
		||||
#include "ui_QDataManagementWidget.h"
 | 
			
		||||
 | 
			
		||||
class QDataManagementWidget : public QWidget
 | 
			
		||||
{
 | 
			
		||||
	Q_OBJECT
 | 
			
		||||
 | 
			
		||||
public:
 | 
			
		||||
	QDataManagementWidget(QWidget *parent = Q_NULLPTR);
 | 
			
		||||
	~QDataManagementWidget();
 | 
			
		||||
 | 
			
		||||
private:
 | 
			
		||||
	void init();
 | 
			
		||||
	void initData();
 | 
			
		||||
	void initWidgets();
 | 
			
		||||
	void initSignal();
 | 
			
		||||
	
 | 
			
		||||
private:
 | 
			
		||||
	Ui::QDataManagementWidget ui;
 | 
			
		||||
};
 | 
			
		||||
@@ -0,0 +1,73 @@
 | 
			
		||||
<?xml version="1.0" encoding="UTF-8"?>
 | 
			
		||||
<ui version="4.0">
 | 
			
		||||
 <class>QDataManagementWidget</class>
 | 
			
		||||
 <widget class="QWidget" name="QDataManagementWidget">
 | 
			
		||||
  <property name="geometry">
 | 
			
		||||
   <rect>
 | 
			
		||||
    <x>0</x>
 | 
			
		||||
    <y>0</y>
 | 
			
		||||
    <width>759</width>
 | 
			
		||||
    <height>487</height>
 | 
			
		||||
   </rect>
 | 
			
		||||
  </property>
 | 
			
		||||
  <property name="windowTitle">
 | 
			
		||||
   <string>QDataManagementWidget</string>
 | 
			
		||||
  </property>
 | 
			
		||||
  <widget class="QWidget" name="gridLayoutWidget">
 | 
			
		||||
   <property name="geometry">
 | 
			
		||||
    <rect>
 | 
			
		||||
     <x>30</x>
 | 
			
		||||
     <y>20</y>
 | 
			
		||||
     <width>681</width>
 | 
			
		||||
     <height>431</height>
 | 
			
		||||
    </rect>
 | 
			
		||||
   </property>
 | 
			
		||||
   <layout class="QGridLayout" name="pLayoutMain">
 | 
			
		||||
    <property name="leftMargin">
 | 
			
		||||
     <number>5</number>
 | 
			
		||||
    </property>
 | 
			
		||||
    <property name="topMargin">
 | 
			
		||||
     <number>5</number>
 | 
			
		||||
    </property>
 | 
			
		||||
    <property name="rightMargin">
 | 
			
		||||
     <number>5</number>
 | 
			
		||||
    </property>
 | 
			
		||||
    <item row="0" column="0">
 | 
			
		||||
     <widget class="QTabWidget" name="tabWidget">
 | 
			
		||||
      <property name="currentIndex">
 | 
			
		||||
       <number>0</number>
 | 
			
		||||
      </property>
 | 
			
		||||
      <widget class="QWidget" name="tab">
 | 
			
		||||
       <attribute name="title">
 | 
			
		||||
        <string>车商业绩表</string>
 | 
			
		||||
       </attribute>
 | 
			
		||||
      </widget>
 | 
			
		||||
      <widget class="QWidget" name="tab_2">
 | 
			
		||||
       <attribute name="title">
 | 
			
		||||
        <string>车商方案表</string>
 | 
			
		||||
       </attribute>
 | 
			
		||||
      </widget>
 | 
			
		||||
      <widget class="QWidget" name="tab_3">
 | 
			
		||||
       <attribute name="title">
 | 
			
		||||
        <string>送返修工单</string>
 | 
			
		||||
       </attribute>
 | 
			
		||||
      </widget>
 | 
			
		||||
      <widget class="QWidget" name="tab_4">
 | 
			
		||||
       <attribute name="title">
 | 
			
		||||
        <string>新送返修监控报表</string>
 | 
			
		||||
       </attribute>
 | 
			
		||||
      </widget>
 | 
			
		||||
      <widget class="QWidget" name="tab_5">
 | 
			
		||||
       <attribute name="title">
 | 
			
		||||
        <string>送返修推荐表</string>
 | 
			
		||||
       </attribute>
 | 
			
		||||
      </widget>
 | 
			
		||||
     </widget>
 | 
			
		||||
    </item>
 | 
			
		||||
   </layout>
 | 
			
		||||
  </widget>
 | 
			
		||||
 </widget>
 | 
			
		||||
 <layoutdefault spacing="6" margin="11"/>
 | 
			
		||||
 <resources/>
 | 
			
		||||
 <connections/>
 | 
			
		||||
</ui>
 | 
			
		||||
@@ -0,0 +1,11 @@
 | 
			
		||||
#include "QRepairOrderWidget.h"
 | 
			
		||||
 | 
			
		||||
QRepairOrderWidget::QRepairOrderWidget(QWidget *parent)
 | 
			
		||||
	: QWidget(parent)
 | 
			
		||||
{
 | 
			
		||||
	ui.setupUi(this);
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
QRepairOrderWidget::~QRepairOrderWidget()
 | 
			
		||||
{
 | 
			
		||||
}
 | 
			
		||||
@@ -0,0 +1,16 @@
 | 
			
		||||
#pragma once
 | 
			
		||||
 | 
			
		||||
#include <QWidget>
 | 
			
		||||
#include "ui_QRepairOrderWidget.h"
 | 
			
		||||
 | 
			
		||||
class QRepairOrderWidget : public QWidget
 | 
			
		||||
{
 | 
			
		||||
	Q_OBJECT
 | 
			
		||||
 | 
			
		||||
public:
 | 
			
		||||
	QRepairOrderWidget(QWidget *parent = Q_NULLPTR);
 | 
			
		||||
	~QRepairOrderWidget();
 | 
			
		||||
 | 
			
		||||
private:
 | 
			
		||||
	Ui::QRepairOrderWidget ui;
 | 
			
		||||
};
 | 
			
		||||
@@ -0,0 +1,23 @@
 | 
			
		||||
<UI version="4.0" >
 | 
			
		||||
 <class>QRepairOrderWidget</class>
 | 
			
		||||
 <widget class="QWidget" name="QRepairOrderWidget" >
 | 
			
		||||
  <property name="objectName" >
 | 
			
		||||
   <string notr="true">QRepairOrderWidget</string>
 | 
			
		||||
  </property>
 | 
			
		||||
  <property name="geometry" >
 | 
			
		||||
   <rect>
 | 
			
		||||
	<x>0</x>
 | 
			
		||||
	<y>0</y>
 | 
			
		||||
	<width>400</width>
 | 
			
		||||
	<height>300</height>
 | 
			
		||||
   </rect>
 | 
			
		||||
  </property>
 | 
			
		||||
  <property name="windowTitle" >
 | 
			
		||||
   <string>QRepairOrderWidget</string>
 | 
			
		||||
  </property>
 | 
			
		||||
 </widget>
 | 
			
		||||
 <layoutDefault spacing="6" margin="11" />
 | 
			
		||||
 <pixmapfunction></pixmapfunction>
 | 
			
		||||
 <resources/>
 | 
			
		||||
 <connections/>
 | 
			
		||||
</UI>
 | 
			
		||||
@@ -0,0 +1,92 @@
 | 
			
		||||
#include <iostream>
 | 
			
		||||
#include "QLoginDialog.h"
 | 
			
		||||
#include "../../system/system_util.h"
 | 
			
		||||
#include "../../data/Datastructure/UserInfo/UserInfo.h"
 | 
			
		||||
#include "../../data/query/query_user.h"
 | 
			
		||||
#include "../../data/AppParameters/AppParameters.h"
 | 
			
		||||
#include <QMessageBox>
 | 
			
		||||
 | 
			
		||||
using namespace std;
 | 
			
		||||
 | 
			
		||||
QLoginDialog::QLoginDialog( QWidget * parent )
 | 
			
		||||
	: QDialog( parent )
 | 
			
		||||
{
 | 
			
		||||
	ui.setupUi( this );
 | 
			
		||||
 | 
			
		||||
	init();
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
QLoginDialog::~QLoginDialog()
 | 
			
		||||
{
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
void QLoginDialog::init()
 | 
			
		||||
{
 | 
			
		||||
	initData();
 | 
			
		||||
	initWidgets();
 | 
			
		||||
	initSignal();
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
void QLoginDialog::initData()
 | 
			
		||||
{
 | 
			
		||||
	returnCode = EXIT;
 | 
			
		||||
 | 
			
		||||
	systemUserName = QString::fromStdWString( getUserName() );
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
void QLoginDialog::initSignal()
 | 
			
		||||
{
 | 
			
		||||
	connect( ui.pButtonOK, SIGNAL( clicked() ), this, SLOT( onOK() ));
 | 
			
		||||
	connect( ui.pButtonExit, SIGNAL( clicked() ), this, SLOT( onExit() ));
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
void QLoginDialog::initWidgets()
 | 
			
		||||
{
 | 
			
		||||
	setLayout( ui.pLayoutMain );
 | 
			
		||||
 | 
			
		||||
	ui.pEditSystemUserName->setText( systemUserName );
 | 
			
		||||
 | 
			
		||||
	try
 | 
			
		||||
	{
 | 
			
		||||
		queryStaffInfo( systemUserName );
 | 
			
		||||
	}
 | 
			
		||||
	catch ( runtime_error & error )
 | 
			
		||||
	{
 | 
			
		||||
		//如果出现异常,就不让用户继续登录
 | 
			
		||||
		QMessageBox::critical( nullptr,
 | 
			
		||||
		                       "错误,请联系管理员!",
 | 
			
		||||
		                       QString::fromLocal8Bit( error.what() ) );
 | 
			
		||||
 | 
			
		||||
		ui.pButtonOK->setEnabled( false );
 | 
			
		||||
	}
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
void QLoginDialog::onOK()
 | 
			
		||||
{
 | 
			
		||||
	returnCode = OK;
 | 
			
		||||
 | 
			
		||||
	this->close();
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
void QLoginDialog::onExit()
 | 
			
		||||
{
 | 
			
		||||
	returnCode = EXIT;
 | 
			
		||||
 | 
			
		||||
	this->close();
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
void QLoginDialog::queryStaffInfo( const QString & systemUserName )
 | 
			
		||||
{
 | 
			
		||||
	string userName = "car_dealer";
 | 
			
		||||
	string password = "cpic123456";
 | 
			
		||||
	string tnsName  = "xmcx1";
 | 
			
		||||
 | 
			
		||||
	string staffP13 = systemUserName.toLocal8Bit();
 | 
			
		||||
 | 
			
		||||
	UserInfo && info = queryUserInfo( userName,
 | 
			
		||||
	                                  password,
 | 
			
		||||
	                                  tnsName,
 | 
			
		||||
	                                  staffP13 );
 | 
			
		||||
 | 
			
		||||
	pStaffInfo = new UserInfo( info );
 | 
			
		||||
}
 | 
			
		||||
@@ -0,0 +1,39 @@
 | 
			
		||||
#pragma once
 | 
			
		||||
 | 
			
		||||
#include <QDialog>
 | 
			
		||||
#include "ui_QLoginDialog.h"
 | 
			
		||||
 | 
			
		||||
class QLoginDialog : public QDialog
 | 
			
		||||
{
 | 
			
		||||
	Q_OBJECT
 | 
			
		||||
 | 
			
		||||
public:
 | 
			
		||||
	QLoginDialog(QWidget *parent = Q_NULLPTR);
 | 
			
		||||
	~QLoginDialog();
 | 
			
		||||
 | 
			
		||||
	typedef enum { OK, EXIT } ReturnCode;
 | 
			
		||||
	
 | 
			
		||||
	ReturnCode getReturnCode() const
 | 
			
		||||
	{
 | 
			
		||||
		return returnCode;
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
protected Q_SLOTS:
 | 
			
		||||
	void init();
 | 
			
		||||
	void initData();
 | 
			
		||||
	void initSignal();
 | 
			
		||||
	void initWidgets();
 | 
			
		||||
 | 
			
		||||
	void onOK();
 | 
			
		||||
	void onExit();
 | 
			
		||||
 | 
			
		||||
private:
 | 
			
		||||
	void queryStaffInfo( const QString & systemUserName );
 | 
			
		||||
 | 
			
		||||
private:
 | 
			
		||||
	Ui::QLoginDialog ui;
 | 
			
		||||
	ReturnCode returnCode;
 | 
			
		||||
	QString systemUserName;
 | 
			
		||||
	QString cpicUserName;
 | 
			
		||||
	QString cpicP13;
 | 
			
		||||
};
 | 
			
		||||
@@ -0,0 +1,286 @@
 | 
			
		||||
<?xml version="1.0" encoding="UTF-8"?>
 | 
			
		||||
<ui version="4.0">
 | 
			
		||||
 <class>QLoginDialog</class>
 | 
			
		||||
 <widget class="QDialog" name="QLoginDialog">
 | 
			
		||||
  <property name="geometry">
 | 
			
		||||
   <rect>
 | 
			
		||||
    <x>0</x>
 | 
			
		||||
    <y>0</y>
 | 
			
		||||
    <width>350</width>
 | 
			
		||||
    <height>160</height>
 | 
			
		||||
   </rect>
 | 
			
		||||
  </property>
 | 
			
		||||
  <property name="minimumSize">
 | 
			
		||||
   <size>
 | 
			
		||||
    <width>350</width>
 | 
			
		||||
    <height>160</height>
 | 
			
		||||
   </size>
 | 
			
		||||
  </property>
 | 
			
		||||
  <property name="maximumSize">
 | 
			
		||||
   <size>
 | 
			
		||||
    <width>350</width>
 | 
			
		||||
    <height>160</height>
 | 
			
		||||
   </size>
 | 
			
		||||
  </property>
 | 
			
		||||
  <property name="windowTitle">
 | 
			
		||||
   <string>猜猜你是谁~~~~</string>
 | 
			
		||||
  </property>
 | 
			
		||||
  <property name="windowIcon">
 | 
			
		||||
   <iconset>
 | 
			
		||||
    <normalon>:/QMainFrame/Resources/CPIC透明.png</normalon>
 | 
			
		||||
   </iconset>
 | 
			
		||||
  </property>
 | 
			
		||||
  <widget class="QWidget" name="layoutWidget">
 | 
			
		||||
   <property name="geometry">
 | 
			
		||||
    <rect>
 | 
			
		||||
     <x>0</x>
 | 
			
		||||
     <y>0</y>
 | 
			
		||||
     <width>349</width>
 | 
			
		||||
     <height>158</height>
 | 
			
		||||
    </rect>
 | 
			
		||||
   </property>
 | 
			
		||||
   <layout class="QVBoxLayout" name="pLayoutMain">
 | 
			
		||||
    <property name="leftMargin">
 | 
			
		||||
     <number>5</number>
 | 
			
		||||
    </property>
 | 
			
		||||
    <property name="topMargin">
 | 
			
		||||
     <number>5</number>
 | 
			
		||||
    </property>
 | 
			
		||||
    <property name="rightMargin">
 | 
			
		||||
     <number>5</number>
 | 
			
		||||
    </property>
 | 
			
		||||
    <property name="bottomMargin">
 | 
			
		||||
     <number>5</number>
 | 
			
		||||
    </property>
 | 
			
		||||
    <item>
 | 
			
		||||
     <layout class="QHBoxLayout" name="horizontalLayout">
 | 
			
		||||
      <item>
 | 
			
		||||
       <widget class="QLabel" name="label">
 | 
			
		||||
        <property name="text">
 | 
			
		||||
         <string/>
 | 
			
		||||
        </property>
 | 
			
		||||
        <property name="pixmap">
 | 
			
		||||
         <pixmap resource="../../resource.qrc">:/QMainFrame/Resources/cat.png</pixmap>
 | 
			
		||||
        </property>
 | 
			
		||||
       </widget>
 | 
			
		||||
      </item>
 | 
			
		||||
      <item>
 | 
			
		||||
       <widget class="QGroupBox" name="groupBox">
 | 
			
		||||
        <property name="title">
 | 
			
		||||
         <string>人员信息:</string>
 | 
			
		||||
        </property>
 | 
			
		||||
        <layout class="QGridLayout" name="gridLayout">
 | 
			
		||||
         <item row="0" column="0">
 | 
			
		||||
          <widget class="QLabel" name="label_2">
 | 
			
		||||
           <property name="minimumSize">
 | 
			
		||||
            <size>
 | 
			
		||||
             <width>85</width>
 | 
			
		||||
             <height>0</height>
 | 
			
		||||
            </size>
 | 
			
		||||
           </property>
 | 
			
		||||
           <property name="maximumSize">
 | 
			
		||||
            <size>
 | 
			
		||||
             <width>85</width>
 | 
			
		||||
             <height>16777215</height>
 | 
			
		||||
            </size>
 | 
			
		||||
           </property>
 | 
			
		||||
           <property name="text">
 | 
			
		||||
            <string>系统用户名:</string>
 | 
			
		||||
           </property>
 | 
			
		||||
           <property name="alignment">
 | 
			
		||||
            <set>Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter</set>
 | 
			
		||||
           </property>
 | 
			
		||||
          </widget>
 | 
			
		||||
         </item>
 | 
			
		||||
         <item row="0" column="1">
 | 
			
		||||
          <widget class="QLineEdit" name="pEditSystemUserName">
 | 
			
		||||
           <property name="minimumSize">
 | 
			
		||||
            <size>
 | 
			
		||||
             <width>120</width>
 | 
			
		||||
             <height>0</height>
 | 
			
		||||
            </size>
 | 
			
		||||
           </property>
 | 
			
		||||
           <property name="maximumSize">
 | 
			
		||||
            <size>
 | 
			
		||||
             <width>120</width>
 | 
			
		||||
             <height>16777215</height>
 | 
			
		||||
            </size>
 | 
			
		||||
           </property>
 | 
			
		||||
           <property name="styleSheet">
 | 
			
		||||
            <string notr="true">border: 1px solid silver;</string>
 | 
			
		||||
           </property>
 | 
			
		||||
           <property name="alignment">
 | 
			
		||||
            <set>Qt::AlignCenter</set>
 | 
			
		||||
           </property>
 | 
			
		||||
           <property name="readOnly">
 | 
			
		||||
            <bool>true</bool>
 | 
			
		||||
           </property>
 | 
			
		||||
          </widget>
 | 
			
		||||
         </item>
 | 
			
		||||
         <item row="1" column="0">
 | 
			
		||||
          <widget class="QLabel" name="label_3">
 | 
			
		||||
           <property name="minimumSize">
 | 
			
		||||
            <size>
 | 
			
		||||
             <width>85</width>
 | 
			
		||||
             <height>0</height>
 | 
			
		||||
            </size>
 | 
			
		||||
           </property>
 | 
			
		||||
           <property name="maximumSize">
 | 
			
		||||
            <size>
 | 
			
		||||
             <width>85</width>
 | 
			
		||||
             <height>16777215</height>
 | 
			
		||||
            </size>
 | 
			
		||||
           </property>
 | 
			
		||||
           <property name="text">
 | 
			
		||||
            <string>人员名称:</string>
 | 
			
		||||
           </property>
 | 
			
		||||
           <property name="alignment">
 | 
			
		||||
            <set>Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter</set>
 | 
			
		||||
           </property>
 | 
			
		||||
          </widget>
 | 
			
		||||
         </item>
 | 
			
		||||
         <item row="1" column="1">
 | 
			
		||||
          <widget class="QLineEdit" name="pEditUserName">
 | 
			
		||||
           <property name="minimumSize">
 | 
			
		||||
            <size>
 | 
			
		||||
             <width>120</width>
 | 
			
		||||
             <height>0</height>
 | 
			
		||||
            </size>
 | 
			
		||||
           </property>
 | 
			
		||||
           <property name="maximumSize">
 | 
			
		||||
            <size>
 | 
			
		||||
             <width>120</width>
 | 
			
		||||
             <height>16777215</height>
 | 
			
		||||
            </size>
 | 
			
		||||
           </property>
 | 
			
		||||
           <property name="styleSheet">
 | 
			
		||||
            <string notr="true">border: 1px solid silver;</string>
 | 
			
		||||
           </property>
 | 
			
		||||
           <property name="alignment">
 | 
			
		||||
            <set>Qt::AlignCenter</set>
 | 
			
		||||
           </property>
 | 
			
		||||
           <property name="readOnly">
 | 
			
		||||
            <bool>true</bool>
 | 
			
		||||
           </property>
 | 
			
		||||
          </widget>
 | 
			
		||||
         </item>
 | 
			
		||||
         <item row="2" column="0">
 | 
			
		||||
          <widget class="QLabel" name="label_4">
 | 
			
		||||
           <property name="minimumSize">
 | 
			
		||||
            <size>
 | 
			
		||||
             <width>85</width>
 | 
			
		||||
             <height>0</height>
 | 
			
		||||
            </size>
 | 
			
		||||
           </property>
 | 
			
		||||
           <property name="maximumSize">
 | 
			
		||||
            <size>
 | 
			
		||||
             <width>85</width>
 | 
			
		||||
             <height>16777215</height>
 | 
			
		||||
            </size>
 | 
			
		||||
           </property>
 | 
			
		||||
           <property name="text">
 | 
			
		||||
            <string>岗位:</string>
 | 
			
		||||
           </property>
 | 
			
		||||
           <property name="alignment">
 | 
			
		||||
            <set>Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter</set>
 | 
			
		||||
           </property>
 | 
			
		||||
          </widget>
 | 
			
		||||
         </item>
 | 
			
		||||
         <item row="2" column="1">
 | 
			
		||||
          <widget class="QLineEdit" name="pEditStaffPost">
 | 
			
		||||
           <property name="minimumSize">
 | 
			
		||||
            <size>
 | 
			
		||||
             <width>120</width>
 | 
			
		||||
             <height>0</height>
 | 
			
		||||
            </size>
 | 
			
		||||
           </property>
 | 
			
		||||
           <property name="maximumSize">
 | 
			
		||||
            <size>
 | 
			
		||||
             <width>120</width>
 | 
			
		||||
             <height>16777215</height>
 | 
			
		||||
            </size>
 | 
			
		||||
           </property>
 | 
			
		||||
           <property name="styleSheet">
 | 
			
		||||
            <string notr="true">border: 1px solid silver;</string>
 | 
			
		||||
           </property>
 | 
			
		||||
           <property name="alignment">
 | 
			
		||||
            <set>Qt::AlignCenter</set>
 | 
			
		||||
           </property>
 | 
			
		||||
           <property name="readOnly">
 | 
			
		||||
            <bool>true</bool>
 | 
			
		||||
           </property>
 | 
			
		||||
          </widget>
 | 
			
		||||
         </item>
 | 
			
		||||
        </layout>
 | 
			
		||||
       </widget>
 | 
			
		||||
      </item>
 | 
			
		||||
     </layout>
 | 
			
		||||
    </item>
 | 
			
		||||
    <item>
 | 
			
		||||
     <layout class="QHBoxLayout" name="horizontalLayout_2">
 | 
			
		||||
      <item>
 | 
			
		||||
       <spacer name="horizontalSpacer">
 | 
			
		||||
        <property name="orientation">
 | 
			
		||||
         <enum>Qt::Horizontal</enum>
 | 
			
		||||
        </property>
 | 
			
		||||
        <property name="sizeHint" stdset="0">
 | 
			
		||||
         <size>
 | 
			
		||||
          <width>40</width>
 | 
			
		||||
          <height>20</height>
 | 
			
		||||
         </size>
 | 
			
		||||
        </property>
 | 
			
		||||
       </spacer>
 | 
			
		||||
      </item>
 | 
			
		||||
      <item>
 | 
			
		||||
       <widget class="QToolButton" name="pButtonExit">
 | 
			
		||||
        <property name="text">
 | 
			
		||||
         <string>退出</string>
 | 
			
		||||
        </property>
 | 
			
		||||
        <property name="icon">
 | 
			
		||||
         <iconset>
 | 
			
		||||
          <normalon>:/QMainFrame/Resources/quit.png</normalon>
 | 
			
		||||
         </iconset>
 | 
			
		||||
        </property>
 | 
			
		||||
        <property name="iconSize">
 | 
			
		||||
         <size>
 | 
			
		||||
          <width>32</width>
 | 
			
		||||
          <height>32</height>
 | 
			
		||||
         </size>
 | 
			
		||||
        </property>
 | 
			
		||||
        <property name="toolButtonStyle">
 | 
			
		||||
         <enum>Qt::ToolButtonTextBesideIcon</enum>
 | 
			
		||||
        </property>
 | 
			
		||||
       </widget>
 | 
			
		||||
      </item>
 | 
			
		||||
      <item>
 | 
			
		||||
       <widget class="QToolButton" name="pButtonOK">
 | 
			
		||||
        <property name="text">
 | 
			
		||||
         <string>确认</string>
 | 
			
		||||
        </property>
 | 
			
		||||
        <property name="icon">
 | 
			
		||||
         <iconset>
 | 
			
		||||
          <normalon>:/QMainFrame/Resources/ok.png</normalon>
 | 
			
		||||
         </iconset>
 | 
			
		||||
        </property>
 | 
			
		||||
        <property name="iconSize">
 | 
			
		||||
         <size>
 | 
			
		||||
          <width>32</width>
 | 
			
		||||
          <height>32</height>
 | 
			
		||||
         </size>
 | 
			
		||||
        </property>
 | 
			
		||||
        <property name="toolButtonStyle">
 | 
			
		||||
         <enum>Qt::ToolButtonTextBesideIcon</enum>
 | 
			
		||||
        </property>
 | 
			
		||||
       </widget>
 | 
			
		||||
      </item>
 | 
			
		||||
     </layout>
 | 
			
		||||
    </item>
 | 
			
		||||
   </layout>
 | 
			
		||||
  </widget>
 | 
			
		||||
 </widget>
 | 
			
		||||
 <layoutdefault spacing="6" margin="11"/>
 | 
			
		||||
 <resources>
 | 
			
		||||
  <include location="../../resource.qrc"/>
 | 
			
		||||
 </resources>
 | 
			
		||||
 <connections/>
 | 
			
		||||
</ui>
 | 
			
		||||
@@ -0,0 +1,34 @@
 | 
			
		||||
 | 
			
		||||
#include "QMainFrame.h"
 | 
			
		||||
 | 
			
		||||
QMainFrame::QMainFrame(QWidget* parent)
 | 
			
		||||
	: QMainWindow(parent)
 | 
			
		||||
{
 | 
			
		||||
	ui.setupUi(this);
 | 
			
		||||
 | 
			
		||||
	init();
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
void QMainFrame::init()
 | 
			
		||||
{
 | 
			
		||||
	initData();
 | 
			
		||||
	initWidgets();
 | 
			
		||||
	initSignal();
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
void QMainFrame::initData()
 | 
			
		||||
{
 | 
			
		||||
	pStackedWidget = new QStackedWidget(this);
 | 
			
		||||
	pWidgetDataManagement = new QDataManagementWidget(pStackedWidget);
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
void QMainFrame::initWidgets()
 | 
			
		||||
{
 | 
			
		||||
	pStackedWidget->addWidget(pWidgetDataManagement);
 | 
			
		||||
	
 | 
			
		||||
	setCentralWidget(pStackedWidget);
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
void QMainFrame::initSignal()
 | 
			
		||||
{
 | 
			
		||||
}
 | 
			
		||||
@@ -0,0 +1,25 @@
 | 
			
		||||
#pragma once
 | 
			
		||||
 | 
			
		||||
#include <QtWidgets/QMainWindow>
 | 
			
		||||
#include <QtWidgets/QStackedWidget>
 | 
			
		||||
#include "QDataManagementWidget.h"
 | 
			
		||||
#include "ui_QMainFrame.h"
 | 
			
		||||
 | 
			
		||||
class QMainFrame : public QMainWindow
 | 
			
		||||
{
 | 
			
		||||
Q_OBJECT
 | 
			
		||||
 | 
			
		||||
public:
 | 
			
		||||
	QMainFrame( QWidget * parent = Q_NULLPTR );
 | 
			
		||||
 | 
			
		||||
private:
 | 
			
		||||
	void init();
 | 
			
		||||
	void initData();
 | 
			
		||||
	void initWidgets();
 | 
			
		||||
	void initSignal();
 | 
			
		||||
 | 
			
		||||
private:
 | 
			
		||||
	Ui::QMainFrameClass     ui;
 | 
			
		||||
	QStackedWidget *        pStackedWidget;
 | 
			
		||||
	QDataManagementWidget * pWidgetDataManagement;
 | 
			
		||||
};
 | 
			
		||||
							
								
								
									
										100
									
								
								code/cpp/car_dealer_util/source/Widgets/MainFrame/QMainFrame.ui
									
									
									
									
									
										Normal file
									
								
							
							
						
						@@ -0,0 +1,100 @@
 | 
			
		||||
<?xml version="1.0" encoding="UTF-8"?>
 | 
			
		||||
<ui version="4.0">
 | 
			
		||||
 <class>QMainFrameClass</class>
 | 
			
		||||
 <widget class="QMainWindow" name="QMainFrameClass">
 | 
			
		||||
  <property name="geometry">
 | 
			
		||||
   <rect>
 | 
			
		||||
    <x>0</x>
 | 
			
		||||
    <y>0</y>
 | 
			
		||||
    <width>796</width>
 | 
			
		||||
    <height>558</height>
 | 
			
		||||
   </rect>
 | 
			
		||||
  </property>
 | 
			
		||||
  <property name="windowTitle">
 | 
			
		||||
   <string>QMainFrame</string>
 | 
			
		||||
  </property>
 | 
			
		||||
  <widget class="QWidget" name="centralWidget"/>
 | 
			
		||||
  <widget class="QMenuBar" name="menuBar">
 | 
			
		||||
   <property name="geometry">
 | 
			
		||||
    <rect>
 | 
			
		||||
     <x>0</x>
 | 
			
		||||
     <y>0</y>
 | 
			
		||||
     <width>796</width>
 | 
			
		||||
     <height>23</height>
 | 
			
		||||
    </rect>
 | 
			
		||||
   </property>
 | 
			
		||||
   <widget class="QMenu" name="menu">
 | 
			
		||||
    <property name="title">
 | 
			
		||||
     <string>系统</string>
 | 
			
		||||
    </property>
 | 
			
		||||
    <addaction name="pActionExit"/>
 | 
			
		||||
   </widget>
 | 
			
		||||
   <widget class="QMenu" name="menu_2">
 | 
			
		||||
    <property name="title">
 | 
			
		||||
     <string>帮助</string>
 | 
			
		||||
    </property>
 | 
			
		||||
    <addaction name="pActionAbout"/>
 | 
			
		||||
   </widget>
 | 
			
		||||
   <addaction name="menu"/>
 | 
			
		||||
   <addaction name="menu_2"/>
 | 
			
		||||
  </widget>
 | 
			
		||||
  <widget class="QToolBar" name="mainToolBar">
 | 
			
		||||
   <property name="iconSize">
 | 
			
		||||
    <size>
 | 
			
		||||
     <width>36</width>
 | 
			
		||||
     <height>36</height>
 | 
			
		||||
    </size>
 | 
			
		||||
   </property>
 | 
			
		||||
   <attribute name="toolBarArea">
 | 
			
		||||
    <enum>TopToolBarArea</enum>
 | 
			
		||||
   </attribute>
 | 
			
		||||
   <attribute name="toolBarBreak">
 | 
			
		||||
    <bool>false</bool>
 | 
			
		||||
   </attribute>
 | 
			
		||||
   <addaction name="pActionDataManagement"/>
 | 
			
		||||
   <addaction name="pActionParamentersManagement"/>
 | 
			
		||||
  </widget>
 | 
			
		||||
  <widget class="QStatusBar" name="statusBar"/>
 | 
			
		||||
  <action name="pActionExit">
 | 
			
		||||
   <property name="icon">
 | 
			
		||||
    <iconset resource="../../resource.qrc">
 | 
			
		||||
     <normaloff>:/QMainFrame/Resources/quit.png</normaloff>:/QMainFrame/Resources/quit.png</iconset>
 | 
			
		||||
   </property>
 | 
			
		||||
   <property name="text">
 | 
			
		||||
    <string>退出</string>
 | 
			
		||||
   </property>
 | 
			
		||||
  </action>
 | 
			
		||||
  <action name="pActionAbout">
 | 
			
		||||
   <property name="icon">
 | 
			
		||||
    <iconset resource="../../resource.qrc">
 | 
			
		||||
     <normaloff>:/QMainFrame/Resources/cat.png</normaloff>:/QMainFrame/Resources/cat.png</iconset>
 | 
			
		||||
   </property>
 | 
			
		||||
   <property name="text">
 | 
			
		||||
    <string>关于</string>
 | 
			
		||||
   </property>
 | 
			
		||||
  </action>
 | 
			
		||||
  <action name="pActionDataManagement">
 | 
			
		||||
   <property name="icon">
 | 
			
		||||
    <iconset resource="../../resource.qrc">
 | 
			
		||||
     <normaloff>:/QMainFrame/Resources/excel.png</normaloff>:/QMainFrame/Resources/excel.png</iconset>
 | 
			
		||||
   </property>
 | 
			
		||||
   <property name="text">
 | 
			
		||||
    <string>数据管理</string>
 | 
			
		||||
   </property>
 | 
			
		||||
  </action>
 | 
			
		||||
  <action name="pActionParamentersManagement">
 | 
			
		||||
   <property name="icon">
 | 
			
		||||
    <iconset resource="../../resource.qrc">
 | 
			
		||||
     <normaloff>:/QMainFrame/Resources/option.png</normaloff>:/QMainFrame/Resources/option.png</iconset>
 | 
			
		||||
   </property>
 | 
			
		||||
   <property name="text">
 | 
			
		||||
    <string>参数管理</string>
 | 
			
		||||
   </property>
 | 
			
		||||
  </action>
 | 
			
		||||
 </widget>
 | 
			
		||||
 <layoutdefault spacing="6" margin="11"/>
 | 
			
		||||
 <resources>
 | 
			
		||||
  <include location="../../resource.qrc"/>
 | 
			
		||||
 </resources>
 | 
			
		||||
 <connections/>
 | 
			
		||||
</ui>
 | 
			
		||||
							
								
								
									
										
											BIN
										
									
								
								code/cpp/car_dealer_util/source/car_dealer_util.ico
									
									
									
									
									
										Normal file
									
								
							
							
						
						| 
		 After Width: | Height: | Size: 361 KiB  | 
							
								
								
									
										2
									
								
								code/cpp/car_dealer_util/source/car_dealer_util.rc
									
									
									
									
									
										Normal file
									
								
							
							
						
						@@ -0,0 +1,2 @@
 | 
			
		||||
IDI_ICON1		ICON		DISCARDABLE	"car_dealer_util.ico"
 | 
			
		||||
 | 
			
		||||
							
								
								
									
										82
									
								
								code/cpp/car_dealer_util/source/db/ocilib/db_oper.cpp
									
									
									
									
									
										Normal file
									
								
							
							
						
						@@ -0,0 +1,82 @@
 | 
			
		||||
 | 
			
		||||
#include <exception>
 | 
			
		||||
#include <stdexcept>
 | 
			
		||||
#include <QDebug>
 | 
			
		||||
#include "db_oper.h"
 | 
			
		||||
 | 
			
		||||
const int ERROR_MESSAGE_LENGTH = 1001;
 | 
			
		||||
 | 
			
		||||
using namespace std;
 | 
			
		||||
 | 
			
		||||
void get_error_message(OCI_Error * pError, char * pszMessage, size_t length);
 | 
			
		||||
 | 
			
		||||
void initOciLib()
 | 
			
		||||
{
 | 
			
		||||
	int    returnCode = 0;
 | 
			
		||||
	char * pszErrorMessage = (char *)malloc(sizeof(char) * ERROR_MESSAGE_LENGTH);
 | 
			
		||||
 | 
			
		||||
	returnCode = OCI_Initialize(NULL, NULL, OCI_ENV_DEFAULT);
 | 
			
		||||
 | 
			
		||||
	if (!returnCode )
 | 
			
		||||
	{
 | 
			
		||||
		get_error_message(OCI_GetLastError(), pszErrorMessage, ERROR_MESSAGE_LENGTH - 1);
 | 
			
		||||
 | 
			
		||||
		string message("OCILIB初始化失败!\n");
 | 
			
		||||
 | 
			
		||||
		message += pszErrorMessage;
 | 
			
		||||
 | 
			
		||||
		throw runtime_error(message);
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	free(pszErrorMessage);
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
void releaseOciLib()
 | 
			
		||||
{
 | 
			
		||||
	OCI_Cleanup();
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
void get_error_message(OCI_Error * pError, char * pszMessage, size_t length)
 | 
			
		||||
{
 | 
			
		||||
	//防御性验证
 | 
			
		||||
	if (pError == NULL)
 | 
			
		||||
	{
 | 
			
		||||
		pszMessage[0] = NULL;
 | 
			
		||||
 | 
			
		||||
		return;
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	const otext * psz = OCI_ErrorGetString(pError);
 | 
			
		||||
 | 
			
		||||
	strcpy_s(pszMessage, length, psz);
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
void error_handler(OCI_Error * pError)
 | 
			
		||||
{
 | 
			
		||||
	std::runtime_error error(OCI_ErrorGetString(pError));
 | 
			
		||||
 | 
			
		||||
	OCI_Cleanup();
 | 
			
		||||
 | 
			
		||||
	throw error;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
void l_error_handler(OCI_Error* pError)
 | 
			
		||||
{
 | 
			
		||||
	string errorString = OCI_ErrorGetString(pError);
 | 
			
		||||
 | 
			
		||||
	std::runtime_error error(OCI_ErrorGetString(pError));
 | 
			
		||||
 | 
			
		||||
	throw error;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
void output_error_message( const std::string & errorMessage )
 | 
			
		||||
{
 | 
			
		||||
	qDebug() << QString::fromLocal8Bit(errorMessage.c_str());
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
std::string get_last_error_message()
 | 
			
		||||
{
 | 
			
		||||
	OCI_Error * pError = OCI_GetLastError();
 | 
			
		||||
 | 
			
		||||
	return std::string(OCI_ErrorGetString(pError));
 | 
			
		||||
}
 | 
			
		||||
							
								
								
									
										21
									
								
								code/cpp/car_dealer_util/source/db/ocilib/db_oper.h
									
									
									
									
									
										Normal file
									
								
							
							
						
						@@ -0,0 +1,21 @@
 | 
			
		||||
 | 
			
		||||
#ifndef _DB_OPER_H
 | 
			
		||||
#define _DB_OPER_H
 | 
			
		||||
 | 
			
		||||
#include <ocilib.h>
 | 
			
		||||
#include <string>
 | 
			
		||||
#include <unordered_map>
 | 
			
		||||
 | 
			
		||||
void initOciLib();
 | 
			
		||||
 | 
			
		||||
void releaseOciLib();
 | 
			
		||||
 | 
			
		||||
void error_handler(OCI_Error * pError);
 | 
			
		||||
void l_error_handler(OCI_Error* pError);
 | 
			
		||||
 | 
			
		||||
void output_error_message(const std::string& errorMessage);
 | 
			
		||||
 | 
			
		||||
std::string get_last_error_message();
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
#endif
 | 
			
		||||