package com.sunxung.factoring.dict.impl;

import com.sunxung.factoring.component.exception.ValidatorException;
import com.sunxung.factoring.component.util.CodeUtil;
import com.sunxung.factoring.dict.Dict;
import com.sunxung.factoring.entity.sys.Dictionary;
import com.sunxung.factoring.service.sys.DictionaryService;
import org.springframework.stereotype.Component;

/**
 * @Description:文件存放实际目录路径（根据模块进行归类）
 * @Author:wanxiangZhou
 * @E_mail:303526821@qq.com
 * @Date:2017年5月23日 下午3:07:19
 */
@Component
public class FileModuleDict extends Dict {

    /**
     * 编码
     */
    public static String CODE = "fileModule";
    /**
     * 中文名称
     */
    public static String CNAME = "文件所属模块";

    /**
     * 子项枚举
     */
    public static enum ChildEnum {

        /**
         * 供应商补充信息 征信相关照片
         */
        ENTERPRISE_IDCARD_FILES_HISTORY("enterprise_idcard_Files_history", "身份证照片"),
        ENTERPRISE_LOCATION_MAP_HISTORY("enterprise_location_map_history", "地点定位图"),
        ENTERPRISE_RENTAL_CONTRACT_HISTORY("enterprise_rental_contract_history", "租房合同"),
        WATER_ELECTRIICITY_FEES_HISTORY("enterprise_water_electricity_fees_history", "水电费缴纳流水"),
        ENTERPRISE_OFFICE_ENVIRONMENT_HISTORY("enterprise_office_environment_history", "办公环境"),
        ENTERPRISE_BUSINESS_LICENSE_HISTORY("enterprise_business_license_history", "营业执照历史"),
        ENTERPRISE_BASIC_ACCOUNT_INFORMATION_HISTORY("enterprise_basic_account_information_history", "基本户信息历史"),
        ENTERPRISE_ARTICLES_ASSOCIATION_HISTORY("enterprise_articles_association_history", "公司章程和修正案历史"),
        ENTERPRISE_JUDGMENT_HISTORY("enterprise_judgment_history", "结案证明或判决书历史"),
        ENTERPRISE_UPSTREAM_DOCUMENTS_HISTORY("enterprise_upstream_documents_history", "上游采购单据"),
        ENTERPRISE_SALES_DOCUMENTS_HISTORY("enterprise_sales_documents_history", "下游销售单据"),
        ENTERPRISE_TAX_RETURN_HISTORY("enterprise_tax_return_history", "纳税申报表"),
        ENTERPRISE_FINANCIAL_STATEMENTS_HISTORY("enterprise_financial_statements_history", "近两年财务报表"),
        ENTERPRISE_ACCOUNTING_REPORT_HISTORY("enterprise_accounting_report_history", "企业内账报表"),

        /**
         * 项目
         */
        PROJECT_BIDDING_FILE("projectBiddingFile","项目招投标文件、合同模板等"),
        PROJECT_BIDDING_FILE_HISTORY("projectBiddingFileHistory","项目招投标文件、合同模板等历史"),
        PROJECT_DEPARTMENT_FILE("projectDepartmentFile","项目开工情况图片、项目部铭牌图片"),
        PROJECT_DEPARTMENT_FILE_HISTORY("projectDepartmentFileHistory","项目开工情况图片、项目部铭牌图片历史"),
        PROJECT_CORE_ENTERPRISE_FILE("projectCoreEnterpriseFile","项目核心企业历史合作资料"),
        PROJECT_CORE_ENTERPRISE_FILE_HISTORY("projectCoreEnterpriseFileHistory","项目核心企业历史合作资料历史"),

        ENTERPRISE_CREDIT_AUTHORIZATION_LETTER_HISTORY("enterpriseCreditAuthorizationLetterHistory","企业征信授权书历史"),

        RECONSIDER_ADJUST_FILE("reconsiderAdjustFile","授信决议，福已调整文件"),
        /**
         * 招投标管理-招标文件
         */
        TENDERS_HIS_FILE("tendersHisFile","招投标管理-招标文件历史"),

        /**
         * 招投标管理-投标文件
         */
        BIDDING_HIS_FILE("biddingHisFile","招投标管理-投标文件历史"),

        /**
         * 招投标管理-保函文件
         */
        BIDDING_GUARANTEE_LETTER_FILE("biddingGuaranteeLetterFile","招投标管理-保函文件"),

        /**
         * 招投标管理-支付凭证
         */
        BIDDING_PAYMENT_VOUCHER_FILE("biddingPaymentVoucherFile","招投标管理-支付凭证"),

        /**
         * 招投标管理-投标说明
         */
        BIDING_DESCRIPTION_FILE("bidingDescriptionFile","招投标管理-投标说明"),

        /**
         * 招投标管理-中标确认-中标通知书
         */
        BIDDING_AWARD_NOTIFICATION_FILE("biddingAwardNotificationFiles","招投标管理-中标确认-中标通知书"),
        /**
         * 招投标管理-保证金退款确认-退款凭证
         */
        BIDDING_REFUND_FILE("biddingRefundFile","招投标管理-保证金退款确认-退款凭证"),

        SALES_CONTRACT_FILE("salesContractFile", "销售合同管理-销售合同文件"),
        /**
         * 销售合同管理-销售合同文件
         **/
        SALES_CONTRACT_MANAGEMENT_FILE("salesContractManagementFile", "销售合同创建-合同模板"),
        /**
         * 销售合同管理-合同模板文件历史
         **/
        SALES_CONTRACT_MANAGEMENT_HIS_FILE("salesContractManagementHisFile", "销售合同管理-合同模板文件历史"),
        /**
         * 销售合同管理-销售合同审批，签署确认文件
         **/
        SALES_CONTRACT_APPROVAL_FILE("salesContractApprovalFile", "销售合同管理-销售合同审批，签署确认文件"),
        /**
         * 销售合同管理-销售合同文件历史文件
         **/
        SALES_CONTRACT_HIS_FILE("salesContractHistoryFile", "销售合同管理-销售合同文件历史文件"),

        /**
         * 销售合同管理-补充文件
         **/
        SALES_CONTRACT_SUPPLEMENT_FILE("salesContractSupplementFile", "销售合同管理-补充文件"),
        /**
         * 销售合同管理-销售合同审批，签署确认文件
         **/
        SALES_CONTRACT_SUPPLEMENT_APPROVAL_FILE("salesContractSupplementApprovalFile", "销售合同管理-销售补充合同审批，签署确认文件"),
        /**
         * 销售合同变更创建-合同模板
         */
        SALES_SUPPLEMENT_CONTRACT_TEMPLATE_FILE("salesSupplementContractTemplateFile","销售合同变更创建-合同模板"),
        /**
         *
         * 销售合同变更创建历史-合同模板
         */
        SALES_SUPPLEMENT_CONTRACT_TEMPLATE_HIS_FILE("salesSupplementContractTemplateHisFile","销售合同变更创建历史-合同模板"),
        SALES_CONTRACT_SUPPLEMENT_CONTRACT_FILE("salesContractSupplementContractFile","销售合同变更录入-合同文件"),
        SALES_CONTRACT_SUPPLEMENT_HIS_FILE("salesContractSupplementHistoryFile", "销售合同变更录入-合同历史文件"),
        /**
         * 销售合同管理-保证金退还文件
         */
        SALES_CONTRACT_RETURN_BOND_FILE("salesContractReturnBondFile", "销售合同管理-保证金退还文件"),

        /**
         * 销售合同管理-有效文件打包下载
         */
        SALES_CONTRACT_ZIP_FILE("salesContractZipFile", "销售合同所有文件"),

        /**
         * 采购合同管理-采购合同文件制作的合同
         **/
        PURCHASE_CONTRACT_FILE_view("purchaseContractFileView", "采购合同管理-采购合同未签署的文件"),

        /**
         * 采购合同管理-采购合同文件
         **/
        PURCHASE_CONTRACT_FILE("purchaseContractFile", "采购合同管理-采购合同文件"),

        /**
         * 采购合同管理-采购合同文件
         **/
        PURCHASE_CONTRACT_UPLOAD_CONTRACT_FILE("purchaseContractUploadContractFile", "采购合同管理-采购合同上传的文件"),

        /**
         * 采购合同管理-采购合同文件
         **/
        PURCHASE_SUPPLEMENT_CONTRACT_UPLOAD_CONTRACT_FILE("purchaseSupplementContractUploadContractFile", "采购合同管理-采购补充合同上传的文件"),

        /**
         * 采购合同管理-采购签署合同文件
         **/
        PURCHASE_CONTRACT_SIGN_FILE("purchaseContractSignFile", "采购合同管理-采购签署合同文件"),

        /**
         * 采购合同管理-采购签署合同文件
         **/
        PURCHASE_CONTRACT_SIGN_UNDERLINE("purchaseContractUnderlineSignFile", "采购合同管理-采购线下签署合同文件"),

        /**
         * 采购合同管理-采购签署合同文件
         **/
        PURCHASE_SUPPLEMENT_CONTRACT_SIGN_UNDERLINE("purchaseSupplementContractUnderlineSignFile", "采购合同管理-采购补充合同线下签署合同文件"),

        /**
         * 采购合同管理-采购签署合同出证文件
         **/
        PURCHASE_CONTRACT_SIGN_FILE_REPORT("purchaseContractFileReport", "采购合同管理-采购签署合同出证文件"),

        /**
         * 采购合同管理-采购签署合同文件
         **/
        PURCHASE_CONTRACT_SUPPLEMENT_FILE("purchaseContractSupplementFile", "采购合同管理-采购补充合同文件"),

        /**
         * 采购合同管理-采购签署合同文件
         **/
        PURCHASE_CONTRACT_SUPPLEMENT_MAKE_FILE("purchaseContractSupplementMakeFile", "采购合同管理-制作的采购补充合同文件"),

        /**
         * 采购合同管理-采购签署合同文件
         **/
        PURCHASE_CONTRACT_SUPPLEMENT_HISTORY_FILE("purchaseContractSupplementHistoryFile", "采购合同管理-采购补充合同历史文件"),

        /**
         * 采购合同管理-采购签署补充合同文件
         **/
        PURCHASE_CONTRACT_SUPPLEMENT_SIGN_FILE("purchaseContractSupplementSignFile", "采购合同管理-采购签署补充合同文件"),

        /**
         * 采购合同管理-采购签署补充合同出证文件
         **/
        PURCHASE_CONTRACT_SUPPLEMENT_FILE_REPORT("purchaseContractSupplementFileReport", "采购合同管理-采购签署补充合同出证文件"),

        /**
         * 采购合同管理-有效文件打包下载
         **/
        PURCHASE_CONTRACT_ZIP_FILE("purchaseContractZipFile", "采购合同所有文件"),

        /**
         * 验收单管理-验收单文件
         **/
        ACCEPTANCE_FILE("acceptanceFile", "验收单管理-验收单文件"),
        /**
         * 验收单管理-验收单文件-钢小二
         **/
        ACCEPTANCE_FILE_STEEL_WAITER("acceptanceFileSteelWaiter", "验收单管理-验收单文件-钢小二"),
        /**
         * 验收单管理-补充说明文件
         **/
        ACCEPTANCE_SUPPLEMENT_FILE("acceptanceSupplementFile", "验收单管理-补充说明文件"),
        /**
         * 验收单管理-生成的上游验收单文件
         **/
        ACCEPTANCE_UPSTREAM_FILE("acceptanceUpstreamFile", "验收单管理-生成的上游验收单文件"),
        /**
         * 验收单管理-生成的上游验收单文件
         **/
        ACCEPTANCE_UPSTREAM_FILE_SIGN("acceptanceUpstreamFileSign", "验收单管理-生成的上游验收单文件已签署"),
        /**
         * 验收单管理-验收单历史文件
         **/
        ACCEPTANCE_HIS_FILE("acceptanceHisFile", "验收单管理-验收单历史文件"),
        /**
         * 验收单管理-补充说明历史文件
         **/
        ACCEPTANCE_HIS_SUPPLEMENT_FILE("acceptanceHisSupplementFile", "验收单管理-补充说明历史文件"),
        /**
         * 验收单管理-生成的上游验收单历史文件
         **/
        ACCEPTANCE_HIS_UPSTREAM_FILE("acceptanceHisUpstreamFile", "验收单管理-生成的上游验收单历史文件"),
        /**
         * 验收单管理-有效文件打包下载
         **/
        ACCEPTANCE_ZIP_FILE("acceptanceZipFile", "验收单所有文件"),
        /**
         * 验收单管理(单价调整)-补充说明文
         */
        ACCEPTANCE_PRICE_SUPPLEMENT_FILE("acceptanceAdjustFile", "验收单管理(单价调整)-补充说明文件"),
        /**
         * 验收单管理-验收货物调价说明文件历史
         */
        ACCEPTANCE_ADJUST_HIS_FILE("acceptanceAdjustHisFile","验收货物调价说明——历史文件"),

        /**
         * 销售合同管理-销售合同审批，签署确认文件
         **/
        ACCEPTANCE_APPROVAL_FILE("acceptanceApprovalFile", "验收单审核，签署确认文件"),

        /**
         * 结算单管理-下游结算单文件
         **/
        SETTLEMENT_FILE("settlementFile", "结算单管理-下游结算单文件"),

        /**
         * 结算单管理-网价文件
         **/
        SETTLEMENT_NET_PRICE_FILE("settlementNetPriceFile", "结算单管理-网价文件"),

        /**
         * 结算单管理-补充说明文件
         **/
        SETTLEMENT_SUPPLEMENT_FILE("settlementSupplementFile", "结算单管理-补充说明文件"),

        /**
         * 结算单管理-生成的上游未签署文件
         **/
        SETTLEMENT_UPSTREAM_UNSIGNED_FILE("settlementUpstreamUnsignedFile", "结算单管理-生成的上游未签署文件"),

        /**
         * 结算单管理-生成的上游已签署文件
         **/
        SETTLEMENT_UPSTREAM_SIGNED_FILE("settlementUpstreamSignedFile", "结算单管理-生成的上游已签署文件"),

        /**
         * 结算单管理-出证文件
         **/
        SETTLEMENT_CONTRACT_REPORT("settlementContractReport", "结算单管理-出证文件"),

        /**
         * 结算单管理-下游结算单历史文件
         **/
        SETTLEMENT_HIS_FILE("settlementHisFile", "结算单管理-下游结算单历史文件"),

        /**
         * 结算单管理-网价历史文件
         **/
        SETTLEMENT_HIS_NET_PRICE_FILE("settlementHisNetPriceFile", "结算单管理-网价历史文件"),

        /**
         * 结算单管理-补充说明历史文件
         **/
        SETTLEMENT_HIS_SUPPLEMENT_FILE("settlementHisSupplementFile", "结算单管理-补充说明历史文件"),

        /**
         * 结算单管理-生成的上游未签署历史文件
         **/
        SETTLEMENT_HIS_UPSTREAM_UNSIGNED_FILE("settlementHisUpstreamUnsignedFile", "结算单管理-生成的上游未签署历史文件"),

        /**
         * 结算单管理-生成的上游已签署历史文件
         **/
        SETTLEMENT_HIS_UPSTREAM_SIGNED_FILE("settlementHisUpstreamSignedFile", "结算单管理-生成的上游已签署历史文件"),

        /**
         * 结算单管理-有效文件打包下载
         **/
        SETTLEMENT_ZIP_FILE("settlementZipFile", "结算单管理所有文件"),

        /**
         * 底层管理-底层文件
         **/
        UNDERLYING_FILE("underlyingFile", "底层管理-底层文件"),

        /**
         * 底层管理-底层历史文件
         **/
        UNDERLYING_HIS_FILE("underlyingHisFile", "底层管理-底层历史文件"),

        /**
         * 底层管理-压缩文件
         **/
        UNDERLYING_ZIP_FILE("underlyingZipFile", "底层管理压缩文件"),

        /**
         * 发票管理-采购发票文件
         **/
        INVOICE_PURCHASE_FILE("invoicePurchaseFile", "发票管理-采购发票文件"),

        /**
         * 发票管理-销售发票文件
         **/
        INVOICE_SALES_FILE("invoiceSalesFile", "发票管理-销售发票文件"),

        /**
         * 发票管理-采购发票历史文件
         **/
        INVOICE_PURCHASE_HIS_FILE("invoicePurchaseHisFile", "发票管理-采购发票历史文件"),

        /**
         * 发票管理-销售发票历史文件
         **/
        INVOICE_SALES_HIS_FILE("invoiceSalesHisFile", "发票管理-销售发票历史文件"),

        /**
         * 发票管理-开票明细表（含税收分类编码）附件
         */
        INVOICE_DETAIL_FILE("invoiceDetailFile", "发票管理-开票明细表（含税收分类编码）"),
        /**
         * 发票管理-开票明细表（含税收分类编码）(历史)
         */
        INVOICE_DETAIL_HIS_FILE("invoiceDetailHisFile", "发票管理-开票明细表（含税收分类编码）历史文件"),


        /**
         * 发票管理-有效文件打包下载
         **/
        INVOICE_ZIP_FILE("invoiceZipFile", "发票管理所有文件"),

        /**
         * 现金流管理-入账信息文件表
         **/
        CASH_FLOW_ENTRY_FILE("cashFlowEntryFile", "现金流管理-入账信息文件表"),

        /**
         * 资方管理-客户信息-基础资料清单附件
         */
        FINANCIAL_CUSTOMER_BASIC_FILE("financialCustomerBasicFile", "客户信息-基础资料清单附件"),

        /**
         * 资方管理-客户信息-基础资料清单历史附件
         */
        FINANCIAL_CUSTOMER_BASIC_HIS_FILE("financialCustomerBasicHisFile", "客户信息-基础资料清单历史附件"),

        /**
         * 资方管理-支用信息-上游采购合同附件
         */
        FINANCIAL_EXPENDITURE_UPSTREAM_PURCH_FILE("financialExpenditureUpstreamPurchFile", "支用信息-上游采购合同附件"),

        /**
         * 资方管理-支用信息-上游结算单附件
         */
        FINANCIAL_EXPENDITURE_UPSTREAM_SETTLEMENT_FILE("financialExpenditureUpstreamSettlementFile", "支用信息-上游采购合同附件"),

        /**
         * 资方管理-支用信息-上游发票附件
         */
        FINANCIAL_EXPENDITURE_UPSTREAM_INVOICE_FILE("financialExpenditureUpstreamInvoiceFile", "支用信息-上游发票附件"),

        /**
         * 资方管理-支用信息-下游销售合同文件
         */
        FINANCIAL_EXPENDITURE_DOWNSTREAM_SALES_FILE("financialExpenditureDownstreamSalesFile", "支用信息-下游销售合同文件"),

        /**
         * 资方管理-支用信息-下游结算单文件
         */
        FINANCIAL_EXPENDITURE_DOWNSTREAM_SETTLEMENT_FILE("financialExpenditureDownstreamSettlementFile", "支用信息-下游结算单文件"),

        /**
         * 资方管理-支用信息-下游发票
         */
        FINANCIAL_EXPENDITURE_DOWNSTREAM_INVOICE_FILE("financialExpenditureDownstreamInvoiceFile", "支用信息-下游发票"),

        /**
         * 资方管理-支用信息-合同附件
         */
        FINANCIAL_EXPENDITURE_ATTACHMENT_FILE("financialExpenditureAttachmentFile", "支用信息-合同附件"),

        /**
         * 资方管理-支用信息-其它附件
         */
        FINANCIAL_EXPENDITURE_OTHER_FILE("financialExpenditureOtherFile", "支用信息-其它附件"),

        /**
         * 资方管理-支用信息-上游采购合同历史附件
         */
        FINANCIAL_EXPENDITURE_UPSTREAM_PURCH_HIS_FILE("financialExpenditureUpstreamPurchHisFile", "支用信息-上游采购合同历史附件"),

        /**
         * 资方管理-支用信息-上游结算单历史附件
         */
        FINANCIAL_EXPENDITURE_UPSTREAM_SETTLEMENT_HIS_FILE("financialExpenditureUpstreamSettlementHisFile", "支用信息-上游采购合同历史附件"),

        /**
         * 资方管理-支用信息-上游发票历史附件
         */
        FINANCIAL_EXPENDITURE_UPSTREAM_INVOICE_HIS_FILE("financialExpenditureUpstreamInvoiceHisFile", "支用信息-上游发票历史附件"),

        /**
         * 资方管理-支用信息-下游销售合同历史文件
         */
        FINANCIAL_EXPENDITURE_DOWNSTREAM_SALES_HIS_FILE("financialExpenditureDownstreamSalesHisFile", "支用信息-下游销售合同历史文件"),

        /**
         * 资方管理-支用信息-下游结算单历史文件
         */
        FINANCIAL_EXPENDITURE_DOWNSTREAM_SETTLEMENT_HIS_FILE("financialExpenditureDownstreamSettlementHisFile", "支用信息-下游结算单历史文件"),

        /**
         * 资方管理-支用信息-下游历史发票
         */
        FINANCIAL_EXPENDITURE_DOWNSTREAM_INVOICE_HIS_FILE("financialExpenditureDownstreamInvoiceHisFile", "支用信息-下游历史发票"),

        /**
         * 资方管理-支用信息-合同历史附件
         */
        FINANCIAL_EXPENDITURE_ATTACHMENT_HIS_FILE("financialExpenditureAttachmentHisFile", "支用信息-合同历史附件"),

        /**
         * 资方管理-支用信息-其它历史附件
         */
        FINANCIAL_EXPENDITURE_OTHER_HIS_FILE("financialExpenditureOtherHisFile", "支用信息-其它历史附件"),

        /**
         * 资方管理-压缩包文件
         */
        FINANCIAL_ZIP_FILE("financialZipFile", "资方管理-压缩包文件"),

        /**
         * 资方管理-支用信息-合同清单附件
         */
        FINANCIAL_EXPENDITURE_CONTRACT_CHECKLIST_FILE("financialExpenditureContractChecklistFile", "支用信息-合同清单附件"),

        /**
         * 签署确认-文件
         */
        SIGN_CONFIRM_FILE("signConfirmationFile", "销售合同签署确认-文件"),
        /**
         * 销售合同变更签署确认-文件
         */
        SALES_SUPPLEMENT_SIGN_CONFIRM_FILE("salesSupplementSignConfirmFile", "销售合同变更签署确认-文件"),
        /**
         * 销售合同变更签署确认-回调文件
         */
        SALES_SUPPLEMENT_SIGN_CONFIRM_BACK_FILE("salesSupplementSignConfirmBackFile", "销售合同变更签署确认-回调文件"),
        /**
         * 销售合同变更签署确认-回调文件
         */
        SALES_SUPPLEMENT_SIGN_CONFIRM_BACK_ZIP_FILE("salesSupplementSignConfirmBackZipFile", "销售合同变更签署确认-回调文件zip"),

        /**
         * 销售合同变更签署确认-出征文件
         */
        SSALES_SUPPLEMENT_SIGN_CONFIRM_BACK_REPORT_FILE("salesSupplementSignConfirmReportFile", "签署确认-出证文件"),

        /**
         * 签署确认-回调文件（销售）
         */
        SIGN_CONFIRM_BACK_FILE("signConfirmationBackFile", "签署确认-回调文件"),
        /**
         * 签署确认-回调文件（销售）
         */
        SIGN_CONFIRM_BACK_ZIP_FILE("signConfirmationBackZipFile", "签署确认-回调文件zip"),

        /**
         * 签署确认-出征文件（销售）
         */
        SIGN_CONFIRM_REPORT_FILE("signConfirmationReportFile", "签署确认-出证文件"),

        /**
         * 验收单签署确认-回调文件
         */
        ACCEPTANCE_SIGN_CONFIRM_BACK_FILE("acceptanceSignConfirmationBackFile", "验收单签署确认-已签署文件"),

        /**
         * 验收单签署确认-回调文件
         */
        ACCEPTANCE_SIGN_CONFIRM_BACK_ZIP_FILE("acceptanceSignConfirmationBackZipFile", "验收单签署确认-回调文件zip"),

        /**
         * 供应商审核第二步-动产融资登记
         */
        SUPPLIER_APPROVAL_MOVABLE_PROPERTY_FINANCING_FILE("supplierApprovalMovablePropertyFinancingFile", "供应商审核第二步-动产融资登记"),
        /**
         * 视频尽调注册地址反馈文件
         */
        VIDEO_DUE_DILIGENCE_ADDRESS_FILE("videoDueDiligenceAddressFile", "视频尽调注册地址反馈文件"),
        /**
         * 视频尽调关联企业反馈文件
         */
        VIDEO_DUE_DILIGENCE_ASSOCIATED_ENTERPRISE_FILE("videoDueDiligenceAssociatedEnterpriseFile", "视频尽调关联企业反馈文件"),
        /**
         * 视频尽调经营地址反馈文件
         */
        VIDEO_DUE_DILIGENCE_BUSINESS_ADDRESS_FILE("videoDueDiligenceBusinessAddressFile", "视频尽调经营地址反馈文件"),
        /**
         * 视频尽调经营范围反馈文件
         */
        VIDEO_DUE_DILIGENCE_BUSINESS_SCOPE_FILE("videoDueDiligenceBusinessScopeFile", "视频尽调经营范围反馈文件"),
        /**
         * 视频尽调注册资金反馈文件
         */
        VIDEO_DUE_DILIGENCE_CAPITAL_FILE("videoDueDiligenceCapitalFile", "视频尽调注册资金反馈文件"),
        /**
         * 视频尽调基本变动信息反馈文件
         */
        VIDEO_DUE_DILIGENCE_CHANGE_FILE("videoDueDiligenceChangeFile", "视频尽调基本变动信息反馈文件"),
        /**
         * 视频尽调所属行业反馈文件
         */
        VIDEO_DUE_DILIGENCE_INDUSTRY_FILE("videoDueDiligenceIndustryFile", "视频尽调所属行业反馈文件"),
        /**
         * 视频尽调成立年限反馈文件
         */
        VIDEO_DUE_DILIGENCE_LIFE_FILE("videoDueDiligenceLifeFile", "视频尽调成立年限反馈文件"),
        /**
         * 视频尽调负面清单反馈文件
         */
        VIDEO_DUE_DILIGENCE_NEGATIVE_INFORMATION_FILE("videoDueDiligenceNegativeInformationFile", "视频尽调负面清单反馈文件"),
        /**
         * 视频尽调股东反馈文件
         */
        VIDEO_DUE_DILIGENCE_SHAREHOLDER_FILE("videoDueDiligenceShareholderFile", "视频尽调股东反馈文件"),
        /**
         * 视频尽调企业负责人反馈文件
         */
        VIDEO_DUE_DILIGENCE_SHAREHOLDER_SITUATION_FILE("videoDueDiligenceShareholdersSituationFile", "视频尽调企业负责人反馈文件"),
        /**
         * 视频尽调企业信誉反馈文件
         */
        VIDEO_DUE_DILIGENCE_CORPORATE_GOODWILL_FILE("videoDueDiligenceCorporateGoodwillFile", "视频尽调企业信誉反馈文件"),
        /**
         * 视频尽调企业财务反馈文件
         */
        VIDEO_DUE_DILIGENCE_FINANCE_FILE("videoDueDiligenceFinanceFile", "视频尽调企业财务反馈文件"),
        /**
         * 视频尽调企业经营反馈文件
         */
        VIDEO_DUE_DILIGENCE_OPERATIONS_FILE("videoDueDiligenceOperationsFile", "视频尽调企业经营反馈文件"),

        /**
         * 验收单签署确认-出征文件
         */
        ACCEPTANCE_SIGN_CONFIRM_REPORT_FILE("acceptanceSignConfirmationReportFile", "验收单签署确认-出证文件"),

        /** 额度支用 保证信息证件 **/
        REVIEW_GUARANTOR_INFORMATION_FILE("reviewGuarantorInformation","额度支用保证信息"),

        /** 额度支用附件 **/
        REVIEW_QUOTA_DISBURSE("reviewQuotaDisburse", "额度支用"),

        /** 合同附件存储位置 **/
        CONTRACT_FILE_PREVIEW("contractFilePreview", "合同附件存储目录"),

        /** 中登网附件 **/
        RECEIVABLES_ZHONGDENG_FILE("receivablesZhongDengFile","中登网附件"),

        /** 电子签文件 **/
        ELECTRONIC_FILE("electronicFile","电子签文件"),

        PROJECT_CREDIT_REPORT("projectCreditReport", "项目授信报告"),

        SUPPLIER_REPORT("supplierReport", "供应商授信报告"),

        /** 征信查询授权书 **/
        CREDIT_AUTH("creditAuth", "征信查询授权书"),

        /** 征信报告 **/
        CREDIT_REPORT("creditReport", "征信报告"),

        /** 身份证正面 **/
        CREDIT_CARD_PHOTO("creditCardPhoto", "身份证正面"),

        /** 身份证反面 **/
        CREDIT_CARD_REV_PHOTO("creditCardRevPhoto", "身份证反面"),

        PROJECT_CORE_ENTERPRISE_CREDIT_REPORT("projectCoreEnterpriseCreditReport", "项目核心企业授信报告"),

        /** 电子签身份证正面 **/
        ENTERPRISE_CARD_PHOTO("enterpriseCardPhoto", "身份证正面"),

        /** 电子签身份证反面 **/
        ENTERPRISE_CARD_REV_PHOTO("enterpriseCardRevPhoto", "身份证反面"),

        /** 豁免事项跟进文件 **/
        EXEMPTION_MATTERS_FILE("exemption", "豁免事项跟进文件"),

        CONTRACT_TEMPLATE_FILE("contractTemplateFile","合同模板文件" ),

        OTHER("other","其他");

        /**
         * 编码
         */
        private String code;
        /**
         * 名称
         */
        private String cname;

        ChildEnum(String code, String cname) {
            this.code = code;
            this.cname = cname;
        }

        public String getCode() {
            return code;
        }

        public String getCname() {
            return cname;
        }
    }

    @Override
    public void add(int gradation) {
        Dictionary domain = addDomainDictionary(null, gradation, dictionaryService);
        if (domain == null) {
            throw new ValidatorException(CodeUtil.FAIL, "文件所属模块字典新增失败");
        }
        for (ChildEnum child : ChildEnum.values()) {
            addChildEnumDictionary(domain.getId(), child);
        }
    }

    private Dictionary addChildEnumDictionary(Long parentId, ChildEnum child) {
        Dictionary dictionary = new Dictionary();
        dictionary.setParentId(parentId);
        dictionary.setName(child.getCname());
        dictionary.setCode(child.getCode());
        dictionary.setGradation(child.ordinal());
        return dictionaryService.add(dictionary);
    }

    private Dictionary addDomainDictionary(Long parentId, int gradation, DictionaryService dictionaryService) {
        Dictionary dictionary = new Dictionary();
        dictionary.setParentId(parentId);
        dictionary.setName(CNAME);
        dictionary.setCode(CODE);
        dictionary.setGradation(gradation);
        return dictionaryService.add(dictionary);
    }
}
