<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE generatorConfiguration
        PUBLIC "-//mybatis.org//DTD MyBatis Generator Configuration 1.0//EN"
        "http://mybatis.org/dtd/mybatis-generator-config_1_0.dtd">
<generatorConfiguration>
    <!-- See: http://www.mybatis.org/generator/configreference/commentGenerator.html -->
    <properties resource="vatGenerator.properties" />
    <!-- <classPathEntry location="../hsqldb/hsqldb-2.3.5.jar" /> -->
    <context id="contextId" targetRuntime="MyBatis3">
        <!-- 考虑需要兼容DB2与ORCAL数据库, 大部份字段不需要加双引号,autoDelimitKeywords设置为false -->
        <property name="autoDelimitKeywords" value="true" />
        <property name="javaFileEncoding" value="UTF-8" />
        <!-- beginningDelimiter和endingDelimiter:指明数据库的用于标记数据库对象名的符号,比如ORACLE就是双引号,MYSQL默认是`反引号; -->
        <property name="beginningDelimiter" value="`"/>
        <property name="endingDelimiter" value="`"/>
        <plugin type="org.mybatis.generator.plugins.MapperAnnotationPlugin" />
        <plugin type="org.mybatis.generator.plugins.RowBoundsPlugin" />
        <plugin type="org.mybatis.generator.plugins.ToStringPlugin" />
        <plugin type="org.mybatis.generator.plugins.SerializablePlugin" />

        <commentGenerator>
            <property name="suppressDate" value="true" />
            <property name="addRemarkComments" value="true" />
        </commentGenerator>
        <jdbcConnection driverClass="${jdbc.driverClass}" connectionURL="${jdbc.connectionURL}" userId="${jdbc.userId}" password="${jdbc.password}">
        </jdbcConnection>

        <javaTypeResolver>
            <property name="forceBigDecimals" value="false" />
        </javaTypeResolver>

        <javaModelGenerator targetPackage="pwc.taxtech.atms.vat.entity" targetProject="../../src/main/java">
            <property name="trimStrings" value="true" />
        </javaModelGenerator>

        <sqlMapGenerator targetPackage="pwc.taxtech.atms.vat.dao" targetProject="../../src/main/resources">
        </sqlMapGenerator>

        <javaClientGenerator type="XMLMAPPER" targetPackage="pwc.taxtech.atms.vat.dao" targetProject="../../src/main/java">
            <property name="rootInterface" value="pwc.taxtech.atms.MyVatMapper" />
        </javaClientGenerator>

        <table tableName="Account" domainObjectName="Account">
            <property name="useActualColumnNames" value="true" />
            <property name="ignoreQualifiersAtRuntime" value="true"/>
            <columnOverride column="IsLeaf" javaType="Boolean"/>
            <columnOverride column="isActive" javaType="Boolean" />
        </table>

        <table tableName="AccountRemap" domainObjectName="AccountRemap">
            <property name="useActualColumnNames" value="true" />
            <property name="ignoreQualifiersAtRuntime" value="true"/>
            <columnOverride column="ReMappReason" javaType="java.lang.String" jdbcType="VARCHAR"/>
        </table>

        <table tableName="AccountRemapSum" domainObjectName="AccountRemapSum">
            <property name="useActualColumnNames" value="true" />
            <property name="ignoreQualifiersAtRuntime" value="true"/>
        </table>

        <table tableName="Balance" domainObjectName="Balance">
            <property name="useActualColumnNames" value="true" />
            <property name="ignoreQualifiersAtRuntime" value="true"/>
            <columnOverride column="MappingReason" javaType="java.lang.String" jdbcType="VARCHAR"/>
        </table>

        <table tableName="BalanceStd" domainObjectName="BalanceStd">
            <property name="useActualColumnNames" value="true" />
            <property name="ignoreQualifiersAtRuntime" value="true"/>
        </table>

        <table tableName="BalanceStdManual" domainObjectName="BalanceStdManual">
            <property name="useActualColumnNames" value="true" />
            <property name="ignoreQualifiersAtRuntime" value="true"/>
        </table>

        <table tableName="CellComment" domainObjectName="CellComment">
            <property name="useActualColumnNames" value="true" />
            <property name="ignoreQualifiersAtRuntime" value="true"/>
            <columnOverride column="Comment" javaType="java.lang.String" jdbcType="VARCHAR"/>
        </table>

        <table tableName="CellData" domainObjectName="CellData">
            <property name="useActualColumnNames" value="true" />
            <property name="ignoreQualifiersAtRuntime" value="true"/>
            <columnOverride column="FormulaExp" javaType="java.lang.String" jdbcType="VARCHAR"/>
        </table>

        <table tableName="CellDataSource" domainObjectName="CellDataSource">
            <property name="useActualColumnNames" value="true" />
            <property name="ignoreQualifiersAtRuntime" value="true"/>
        </table>

        <table tableName="CompanyBalance" domainObjectName="CompanyBalance">
            <property name="useActualColumnNames" value="true" />
            <property name="ignoreQualifiersAtRuntime" value="true"/>
        </table>

        <table tableName="CustBalance" domainObjectName="CustBalance">
            <property name="useActualColumnNames" value="true" />
            <property name="ignoreQualifiersAtRuntime" value="true"/>
        </table>

        <table tableName="CustBalanceStd" domainObjectName="CustBalanceStd">
            <property name="useActualColumnNames" value="true" />
            <property name="ignoreQualifiersAtRuntime" value="true"/>
        </table>

        <table tableName="CustBalanceStdManual" domainObjectName="CustBalanceStdManual">
            <property name="useActualColumnNames" value="true" />
            <property name="ignoreQualifiersAtRuntime" value="true"/>
        </table>

        <table tableName="CustomsInvoice" domainObjectName="CustomsInvoice">
            <property name="useActualColumnNames" value="true" />
            <property name="ignoreQualifiersAtRuntime" value="true"/>
        </table>

        <table tableName="DataSource" domainObjectName="DataSource">
            <property name="useActualColumnNames" value="true" />
            <property name="ignoreQualifiersAtRuntime" value="true"/>
            <columnOverride column="Description" javaType="java.lang.String" jdbcType="VARCHAR"/>
            <columnOverride column="RowName" javaType="java.lang.String" jdbcType="VARCHAR"/>
            <columnOverride column="ColumnName" javaType="java.lang.String" jdbcType="VARCHAR"/>
        </table>

        <table tableName="DataSourceDetail" domainObjectName="DataSourceDetail">
            <property name="useActualColumnNames" value="true" />
            <property name="ignoreQualifiersAtRuntime" value="true"/>
        </table>

        <table tableName="EnterpriseAccount" domainObjectName="VatEnterpriseAccount">
            <property name="useActualColumnNames" value="true" />
            <property name="ignoreQualifiersAtRuntime" value="true"/>
            <columnOverride column="IsLeaf" javaType="java.lang.Boolean"/>
            <columnOverride column="IsActive" javaType="java.lang.Boolean"/>
        </table>

        <table tableName="EntriesCheckDetailResult" domainObjectName="EntriesCheckDetailResult">
            <property name="useActualColumnNames" value="true" />
            <property name="ignoreQualifiersAtRuntime" value="true"/>
            <columnOverride column="VID" javaType="java.lang.String" jdbcType="VARCHAR"/>
            <columnOverride column="Summary" javaType="java.lang.String" jdbcType="VARCHAR"/>
            <columnOverride column="ItemID" javaType="java.lang.String" jdbcType="VARCHAR"/>
        </table>

        <table tableName="EntriesCheckResult" domainObjectName="EntriesCheckResult">
            <property name="useActualColumnNames" value="true" />
            <property name="ignoreQualifiersAtRuntime" value="true"/>
            <columnOverride column="Description" javaType="java.lang.String" jdbcType="VARCHAR"/>
        </table>

        <table tableName="FormulaCache" domainObjectName="FormulaCache">
            <property name="useActualColumnNames" value="true" />
            <property name="ignoreQualifiersAtRuntime" value="true"/>
            <columnOverride column="Formula" javaType="java.lang.String" jdbcType="VARCHAR"/>
        </table>

        <table tableName="GoodsMapping" domainObjectName="GoodsMapping">
            <property name="useActualColumnNames" value="true" />
            <property name="ignoreQualifiersAtRuntime" value="true"/>
        </table>

        <table tableName="ImportFile" domainObjectName="ImportFile">
            <property name="useActualColumnNames" value="true" />
            <property name="ignoreQualifiersAtRuntime" value="true"/>
            <columnOverride column="FilePath" javaType="java.lang.String" jdbcType="VARCHAR"/>
            <columnOverride column="FileName" javaType="java.lang.String" jdbcType="VARCHAR"/>
            <columnOverride column="Comments" javaType="java.lang.String" jdbcType="VARCHAR"/>
        </table>

        <table tableName="IndexAnalysisDetailResult" domainObjectName="IndexAnalysisDetailResult">
            <property name="useActualColumnNames" value="true" />
            <property name="ignoreQualifiersAtRuntime" value="true"/>
        </table>

        <table tableName="IndexAnalysisResult" domainObjectName="IndexAnalysisResult">
            <property name="useActualColumnNames" value="true" />
            <property name="ignoreQualifiersAtRuntime" value="true"/>
            <columnOverride column="Description" javaType="java.lang.String" jdbcType="VARCHAR"/>
            <columnOverride column="IndexCodeTotal" javaType="java.lang.String" jdbcType="VARCHAR"/>
        </table>

        <table tableName="InputVATInvoice" domainObjectName="InputVATInvoice">
            <property name="useActualColumnNames" value="true" />
            <property name="ignoreQualifiersAtRuntime" value="true"/>
        </table>

        <table tableName="InputVATInvoiceItem" domainObjectName="InputVATInvoiceItem">
            <property name="useActualColumnNames" value="true" />
            <property name="ignoreQualifiersAtRuntime" value="true"/>
        </table>

        <table tableName="InvoiceMapping" domainObjectName="InvoiceMapping">
            <property name="useActualColumnNames" value="true" />
            <property name="ignoreQualifiersAtRuntime" value="true"/>
        </table>

        <table tableName="ModelBackFillAmount" domainObjectName="ModelBackFillAmount">
            <property name="useActualColumnNames" value="true" />
            <property name="ignoreQualifiersAtRuntime" value="true"/>
        </table>

        <table tableName="ModelCategoryResult" domainObjectName="ModelCategoryResult">
            <property name="useActualColumnNames" value="true" />
            <property name="ignoreQualifiersAtRuntime" value="true"/>
        </table>

        <table tableName="ModelDetailLog" domainObjectName="ModelDetailLog">
            <property name="useActualColumnNames" value="true" />
            <property name="ignoreQualifiersAtRuntime" value="true"/>
            <columnOverride column="Description" javaType="java.lang.String" jdbcType="VARCHAR"/>
        </table>

        <table tableName="ModelLog" domainObjectName="ModelLog">
            <property name="useActualColumnNames" value="true" />
            <property name="ignoreQualifiersAtRuntime" value="true"/>
            <columnOverride column="Description" javaType="java.lang.String" jdbcType="VARCHAR"/>
        </table>


        <table tableName="ModifiedReportCell" domainObjectName="ModifiedReportCell">
            <property name="useActualColumnNames" value="true" />
            <property name="ignoreQualifiersAtRuntime" value="true"/>
            <columnOverride column="Comment" javaType="java.lang.String" jdbcType="VARCHAR"/>
        </table>

        <table tableName="OperationLog" domainObjectName="VatOperationLog">
            <property name="useActualColumnNames" value="true" />
            <property name="ignoreQualifiersAtRuntime" value="true"/>
            <columnOverride column="OperationObject" javaType="java.lang.String" jdbcType="VARCHAR"/>
            <columnOverride column="OperationContent" javaType="java.lang.String" jdbcType="VARCHAR"/>
            <columnOverride column="OriginalState" javaType="java.lang.String" jdbcType="VARCHAR"/>
            <columnOverride column="UpdateState" javaType="java.lang.String" jdbcType="VARCHAR"/>
            <columnOverride column="Comment" javaType="java.lang.String" jdbcType="VARCHAR"/>
        </table>

        <table tableName="OutputVATInvoice" domainObjectName="OutputVATInvoice">
            <property name="useActualColumnNames" value="true" />
            <property name="ignoreQualifiersAtRuntime" value="true"/>
        </table>

        <table tableName="OutputVATInvoiceItem" domainObjectName="OutputVATInvoiceItem">
            <property name="useActualColumnNames" value="true" />
            <property name="ignoreQualifiersAtRuntime" value="true"/>
        </table>

        <table tableName="PeriodCellReference" domainObjectName="PeriodCellReference">
            <property name="useActualColumnNames" value="true" />
            <property name="ignoreQualifiersAtRuntime" value="true"/>
        </table>

        <table tableName="PeriodCellTemplate" domainObjectName="PeriodCellTemplate">
            <property name="useActualColumnNames" value="true" />
            <property name="ignoreQualifiersAtRuntime" value="true"/>
            <columnOverride column="RowName" javaType="java.lang.String" jdbcType="VARCHAR"/>
            <columnOverride column="ColumnName" javaType="java.lang.String" jdbcType="VARCHAR"/>
            <columnOverride column="Comment" javaType="java.lang.String" jdbcType="VARCHAR"/>
        </table>

        <table tableName="PeriodCellTemplateConfig" domainObjectName="PeriodCellTemplateConfig">
            <property name="useActualColumnNames" value="true" />
            <property name="ignoreQualifiersAtRuntime" value="true"/>
            <columnOverride column="Formula" javaType="java.lang.String" jdbcType="VARCHAR"/>
            <columnOverride column="ParsedFormula" javaType="java.lang.String" jdbcType="VARCHAR"/>
            <columnOverride column="FormulaDescription" javaType="java.lang.String" jdbcType="VARCHAR"/>
            <columnOverride column="AccountCodes" javaType="java.lang.String" jdbcType="VARCHAR"/>
            <columnOverride column="ModelIDs" javaType="java.lang.String" jdbcType="VARCHAR"/>
            <columnOverride column="FormulaDataSource" javaType="java.lang.String" jdbcType="VARCHAR"/>
            <columnOverride column="Validation" javaType="java.lang.String" jdbcType="VARCHAR"/>
            <columnOverride column="ParsedValidation" javaType="java.lang.String" jdbcType="VARCHAR"/>
            <columnOverride column="ValidationDescription" javaType="java.lang.String" jdbcType="VARCHAR"/>
            <columnOverride column="VoucherKeyword" javaType="java.lang.String" jdbcType="VARCHAR"/>
        </table>

        <table tableName="PeriodFormulaBlock" domainObjectName="PeriodFormulaBlock">
            <property name="useActualColumnNames" value="true" />
            <property name="ignoreQualifiersAtRuntime" value="true"/>
            <columnOverride column="DataSourceInfo" javaType="java.lang.String" jdbcType="VARCHAR"/>
        </table>

        <table tableName="PeriodTaxPayerReportRule" domainObjectName="PeriodTaxPayerReportRule">
            <property name="useActualColumnNames" value="true" />
            <property name="ignoreQualifiersAtRuntime" value="true"/>
            <columnOverride column="OrganizationID" javaType="java.lang.String" jdbcType="VARCHAR"/>
        </table>

        <table tableName="PeriodTaxRuleSetting" domainObjectName="PeriodTaxRuleSetting">
            <property name="useActualColumnNames" value="true" />
            <property name="ignoreQualifiersAtRuntime" value="true"/>
        </table>

        <table tableName="PeriodTaxRuleSettingOrganization" domainObjectName="PeriodTaxRuleSettingOrganization">
            <property name="useActualColumnNames" value="true" />
            <property name="ignoreQualifiersAtRuntime" value="true"/>
        </table>

        <table tableName="PeriodTemplate" domainObjectName="PeriodTemplate">
            <property name="useActualColumnNames" value="true" />
            <property name="ignoreQualifiersAtRuntime" value="true"/>
            <columnOverride column="Name" javaType="java.lang.String" jdbcType="VARCHAR"/>
            <columnOverride column="Code" javaType="java.lang.String" jdbcType="VARCHAR"/>
            <columnOverride column="Path" javaType="java.lang.String" jdbcType="VARCHAR"/>
        </table>



        <table tableName="StandardAccount" domainObjectName="VatStandardAccount">
            <property name="useActualColumnNames" value="true" />
            <property name="ignoreQualifiersAtRuntime" value="true"/>
            <columnOverride column="isActive" javaType="Boolean" />
            <columnOverride column="isLeaf" javaType="Boolean" />
        </table>

        <table tableName="ValidationInfo" domainObjectName="ValidationInfo">
            <property name="useActualColumnNames" value="true" />
            <property name="ignoreQualifiersAtRuntime" value="true"/>
            <columnOverride column="ValidationResult" javaType="java.lang.String" jdbcType="VARCHAR"/>
            <columnOverride column="ValidationDetails" javaType="java.lang.String" jdbcType="VARCHAR"/>
            <columnOverride column="ValidationTips" javaType="java.lang.String" jdbcType="VARCHAR"/>
        </table>

        <table tableName="Voucher" domainObjectName="Voucher">
            <property name="useActualColumnNames" value="true" />
            <property name="ignoreQualifiersAtRuntime" value="true"/>
            <columnOverride column="VID" javaType="java.lang.String" jdbcType="VARCHAR"/>
            <columnOverride column="Summary" javaType="java.lang.String" jdbcType="VARCHAR"/>
            <columnOverride column="ItemID" javaType="java.lang.String" jdbcType="VARCHAR"/>
            <columnOverride column="MappingReason" javaType="java.lang.String" jdbcType="VARCHAR"/>
        </table>

        <table tableName="VoucherMain" domainObjectName="VoucherMain">
            <property name="useActualColumnNames" value="true" />
            <property name="ignoreQualifiersAtRuntime" value="true"/>
            <columnOverride column="VID" javaType="java.lang.String" jdbcType="VARCHAR"/>
        </table>

        <table tableName="VoucherMapping" domainObjectName="VoucherMapping">
            <property name="useActualColumnNames" value="true" />
            <property name="ignoreQualifiersAtRuntime" value="true"/>
        </table>

        <table tableName="cell_comment" domainObjectName="CellComment">
            <property name="ignoreQualifiersAtRuntime" value="true"/>
        </table>
        <table tableName="cell_data" domainObjectName="CellData">
            <property name="ignoreQualifiersAtRuntime" value="true"/>
        </table>
        <table tableName="cell_data_source" domainObjectName="CellDataSource">
            <property name="ignoreQualifiersAtRuntime" value="true"/>
        </table>
        <table tableName="data_source" domainObjectName="DataSource">
            <property name="ignoreQualifiersAtRuntime" value="true"/>
        </table>
        <table tableName="data_source_detail" domainObjectName="DataSourceDetail">
            <property name="ignoreQualifiersAtRuntime" value="true"/>
        </table>
        <table tableName="period_cell_template" domainObjectName="PeriodCellTemplate">
            <property name="ignoreQualifiersAtRuntime" value="true"/>
            <columnOverride column="is_read_only" javaType="java.lang.Boolean"/>
        </table>
        <table tableName="period_cell_template_config" domainObjectName="PeriodCellTemplateConfig">
            <property name="ignoreQualifiersAtRuntime" value="true"/>
        </table>
        <table tableName="period_formula_block" domainObjectName="PeriodFormulaBlock">
            <property name="ignoreQualifiersAtRuntime" value="true"/>
        </table>
        <table tableName="period_tax_payer_report_rule" domainObjectName="PeriodTaxPayerReportRule">
            <property name="ignoreQualifiersAtRuntime" value="true"/>
        </table>
        <table tableName="period_tax_rule_setting" domainObjectName="PeriodTaxRuleSetting">
            <property name="ignoreQualifiersAtRuntime" value="true"/>
        </table>
        <table tableName="period_tax_rule_setting_organization" domainObjectName="PeriodTaxRuleSettingOrganization">
            <property name="ignoreQualifiersAtRuntime" value="true"/>
        </table>
        <table tableName="period_template" domainObjectName="PeriodTemplate">
            <property name="ignoreQualifiersAtRuntime" value="true"/>
            <columnOverride column="is_system_type" javaType="java.lang.Boolean"/>
            <columnOverride column="is_active_association" javaType="java.lang.Boolean"/>
        </table>
        <table tableName="report" domainObjectName="Report">
            <property name="ignoreQualifiersAtRuntime" value="true"/>
        </table>
        <table tableName="modified_report_cell" domainObjectName="ModifiedReportCell">
            <property name="ignoreQualifiersAtRuntime" value="true"/>
        </table>
        <table tableName="AssetsList" domainObjectName="AssetsList">
            <property name="ignoreQualifiersAtRuntime" value="true"/>
            <columnOverride column="IsRetain" javaType="java.lang.Boolean"/>
        </table>
        <table tableName="AssetGroupResult" domainObjectName="AssetGroupResult">
            <property name="ignoreQualifiersAtRuntime" value="true"/>
        </table>
    </context>
</generatorConfiguration>