PAGE_DEFAULT = 1
PAGE_SIZE_DEFAULT = 10

FIXED_APPLICATION_ID_PREFIX = 'CH-S'

DOC_SCHEME_LIST = ['ACCEPTANCE', 'SETTLEMENT', 'CONTRACT MANAGEMENT']
DATA_SOURCE_LIST = ['POS', 'EAPP', 'ECONTRACT']

HIL_PREFIX = 'HIL'
AFC_PREFIX = 'AFC'
SPLIT_STR = '_'
BUSINESS_TYPE_LIST = [HIL_PREFIX, AFC_PREFIX]
HIL_SET = {'HIL', 'HIl', 'HiL', 'Hil', 'hIL', 'hIl', 'hiL', 'hil', 'CO00002'}

# -------EDMS相关---------------------------------------------------------------------------------------------------

SESSION_PREFIX = 'FHLSID'
CUSTOM_CLIENT = 'CustomClient'
FIXED_TOKEN = '00000000-0000-0000-0000-000000000000'
FIXED_FILE_SIZE = 0
DOWNLOAD_ACTION_TYPE = 'Downloaded'

DOC_SCHEMA_ID_FILL = {
    'ACCEPTANCE': (1, 'DFE-AutoFilingScript'),
    'SETTLEMENT': (20, 'DFE-AutoFilingScript'),
    'CONTRACT MANAGEMENT': (86, 'Schema-Based')
}
BUSINESS_TYPE_DICT = {
    HIL_PREFIX: 'CO00002',
    AFC_PREFIX: 'CO00001'
}
DOC_SCHEMA_TYPE = 'ElectronicRecord'
APPLICATION_ID_META_FIELD_id = 1
DEALER_CODE_META_FIELD_id = 13
BUSINESS_TYPE_META_FIELD_id = 93
DEALER_CODE = 'ocr_situ_group'

# ---------银行流水模板相关--------------------------------------------------------------------------------------------

TRANS = str.maketrans('Cc((oODlLmAsSbg', '000000011345569')

CARD_RATIO = 0.9
UNKNOWN_CARD = '未知卡号'
UNKNOWN_ROLE = '未知户名'
DATE_FORMAT = ['%Y年%m月%d日', '%Y/%m/%d', '%Y-%m-%d', '%Y%m%d']

AMOUNT_COL_TITLE_SET = {"交易金额", "金额", "收入/支出金额", "发生额"}
OVERAGE_COL_TITLE_SET = {"账户余额", "余额"}
PROOF_COL_TITLE = '核对结果'
PROOF_RES = ('对', '错')
META_SHEET_TITLE = '关键信息提取和展示'

FIXED_HEADERS = ('记账日期', '记账时间', '金额', '余额', '交易名称', '附言', '对方账户名', '对方卡号/账号',
                 '对方开户行', '核对结果', '借贷', '收入', '支出')
FIXED_COL_AMOUNT = len(FIXED_HEADERS)
BASE_HEADERS_MAPPING = {label: idx+1 for idx, label in enumerate(FIXED_HEADERS)}
BORROW_HEADER_COL = BASE_HEADERS_MAPPING['借贷']
INCOME_HEADER_COL = BASE_HEADERS_MAPPING['收入']
OUTLAY_HEADER_COL = BASE_HEADERS_MAPPING['支出']
RESULT_HEADER_COL = BASE_HEADERS_MAPPING['核对结果']
BORROW_IDX = BORROW_HEADER_COL - 1
INCOME_IDX = INCOME_HEADER_COL - 1
OUTLAY_IDX = OUTLAY_HEADER_COL - 1
SUMMARY_IDX = FIXED_HEADERS.index('附言')
DATE_IDX = FIXED_HEADERS.index('记账日期')
AMOUNT_IDX = FIXED_HEADERS.index('金额')
OVER_IDX = FIXED_HEADERS.index('余额')
RESULT_IDX = FIXED_HEADERS.index('核对结果')
# '借贷': ('贷', '借'),  # 竖版-无表格-广发银行
# '借贷状态': ('贷', '借'),  # 竖版-特殊-交通银行
# '收/支': ('收入', '支出'),  # 横版-表格-北京银行
BORROW_HEADERS_SET = {'借贷', '借贷状态', '收/支'}
BORROW_INCOME_SET = {'贷', '收入'}
BORROW_OUTLAY_SET = {'借', '支出'}
INCOME_HEADERS_SET = {'收入金额', '收入', '存入', '存入金额(贷)', '存入金额(贷)'}
OUTLAY_HEADERS_SET = {'支出金额', '支出', '支取金额(借)', '支取金额(借)'}

# ------------------普通打印-全格线--------------------------------------------------------------------------------------
HEADERS_MAPPING = {}
# 横版-表格-中国银行(不规则)
HEADERS_MAPPING.update(
    {
        '记账日期': BASE_HEADERS_MAPPING['记账日期'],
        '记账时间': BASE_HEADERS_MAPPING['记账时间'],
        '金额': BASE_HEADERS_MAPPING['金额'],
        '余额': BASE_HEADERS_MAPPING['余额'],
        '交易名称': BASE_HEADERS_MAPPING['交易名称'],
        '附言': BASE_HEADERS_MAPPING['附言'],
        '对方账户名': BASE_HEADERS_MAPPING['对方账户名'],
        '对方卡号/账号': BASE_HEADERS_MAPPING['对方卡号/账号'],
        '对方开户行': BASE_HEADERS_MAPPING['对方开户行'],
    }
)
# 横版-表格-农业银行-中国农业银行个人账户明细
HEADERS_MAPPING.update(
    {
        '交易日期': BASE_HEADERS_MAPPING['记账日期'],
        # '存入': BASE_HEADERS_MAPPING['金额'],
        '对方账号': BASE_HEADERS_MAPPING['对方卡号/账号'],
        '对方名称': BASE_HEADERS_MAPPING['对方账户名'],
        '摘要': BASE_HEADERS_MAPPING['附言'],
    }
)
# 横版-表格-北京银行
HEADERS_MAPPING.update(
    {
        '业务摘要': BASE_HEADERS_MAPPING['附言'],
        '发生额': BASE_HEADERS_MAPPING['金额'],
        '对方户名': BASE_HEADERS_MAPPING['对方账户名'],
    }
)
# 横版-表格-工商银行 借记卡账户历史明细清单
# 横版-表格-工商银行-机打验证码 借记卡账户历史明细清单
# 横版-表格-工商银行CH-B008802400
# 横版-表格-工商银行 工资明细清单
# 工商银行历史明细(申请单号:20042501303039397888)
HEADERS_MAPPING.update(
    {
        '收入/支出金额': BASE_HEADERS_MAPPING['金额'],
        '工作日期': BASE_HEADERS_MAPPING['记账日期'],
    }
)

# 横版-表格-建设银行-个人活期账户交易明细
# 竖版-表格-建设银行-个人活期账户交易明细 CH-B005832604
# 竖版-表格-建设银行-工资账单CH-B008786812
# 竖版-表格-建设银行-个人活期账户交易明细 CH-B005832604 (2)
HEADERS_MAPPING.update(
    {
        '交易金额': BASE_HEADERS_MAPPING['金额'],
        '账户余额': BASE_HEADERS_MAPPING['余额'],
        '对方账号与户名': BASE_HEADERS_MAPPING['对方卡号/账号'],
    }
)
# 微信
HEADERS_MAPPING.update(
    {
        '交易时间': BASE_HEADERS_MAPPING['记账时间'],
        '交易类型': BASE_HEADERS_MAPPING['附言'],
        '金额(元)': BASE_HEADERS_MAPPING['金额'],
        '金额(元)': BASE_HEADERS_MAPPING['金额'],
        '交易对方': BASE_HEADERS_MAPPING['对方账户名'],
    }
)
# 支付宝
HEADERS_MAPPING.update(
    {
        '时间': BASE_HEADERS_MAPPING['记账日期'],
        '名称/备注': BASE_HEADERS_MAPPING['附言'],
    }
)

# ------------普通打印-部分格线-------------------------------------------------------------------------------------------

# 竖版-无表格-农业银行
# 竖版-无表格-农业银行CH-B008805428
HEADERS_MAPPING.update(
    {
        '摘要/附言': BASE_HEADERS_MAPPING['附言'],
        '交易地点/对方账号和户名': BASE_HEADERS_MAPPING['对方卡号/账号'],
    }
)
# 农业银行-窄页
HEADERS_MAPPING.update(
    {
        '交易对手账号': BASE_HEADERS_MAPPING['对方卡号/账号'],
    }
)
# 竖版-特殊-农商行
HEADERS_MAPPING.update(
    {
        '交易发生额': BASE_HEADERS_MAPPING['金额'],
    }
)
# 横版-特殊-中信银行-账户交易明细
HEADERS_MAPPING.update(
    {
        '对方银行': BASE_HEADERS_MAPPING['对方开户行'],
        '交易摘要': BASE_HEADERS_MAPPING['附言'],
    }
)
# 平安电子账单
HEADERS_MAPPING.update(
    {
        '借贷发生额(借:-贷:+)': BASE_HEADERS_MAPPING['金额'],
    }
)

# ------------普通打印-无格线--------------------------------------------------------------------------------------------

# 竖版-无表格-招商银行(略歪)
# 竖版-无表格-招商银行账户历史交易明细表
HEADERS_MAPPING.update(
    {
        '联机余额': BASE_HEADERS_MAPPING['余额'],
    }
)
# 竖版-无表格-邮储银行-账户对账单 含有对手方户名 对手方账户
# 竖版-无表格-邮储银行 账户对账单
# 竖版-无表格-邮储银行-电子章 邮储银行 账户对账单
HEADERS_MAPPING.update(
    {
        '交易金额(元)': BASE_HEADERS_MAPPING['金额'],
        '交易金额(元)': BASE_HEADERS_MAPPING['金额'],
        '账户余额(元)': BASE_HEADERS_MAPPING['余额'],
        '账户余额(元)': BASE_HEADERS_MAPPING['余额'],
        '对手方户名': BASE_HEADERS_MAPPING['对方账户名'],
        '对手方账户': BASE_HEADERS_MAPPING['对方卡号/账号'],
    }
)
# 横版-无表格-广发银行-账户交易历史  --> 已废弃
# 竖版-无表格-广发银行-账户交易历史  --> 已废弃
HEADERS_MAPPING.update(
    {
        '会计日期': BASE_HEADERS_MAPPING['记账日期'],
        '对手户名': BASE_HEADERS_MAPPING['对方账户名'],
        '对手账号': BASE_HEADERS_MAPPING['对方卡号/账号'],
    }
)
# 招行电子账单 TODO 有英文,需测试
HEADERS_MAPPING.update(
    {
        '对手信息': BASE_HEADERS_MAPPING['对方账户名'],
        '摘要代码': BASE_HEADERS_MAPPING['附言'],
    }
)
# 横版-无表格-民生银行-中国民生银行个人账户对账单(客户卡号)
# 横版-无表格-民生银行-无标题(客户账户)
# 横版-无表格-民生银行
HEADERS_MAPPING.update(
    {
        '摘要信息': BASE_HEADERS_MAPPING['附言'],
        '对方行名': BASE_HEADERS_MAPPING['对方开户行'],
    }
)
# 竖版-无表格-农业银行整数
# 竖版-无表格-农业银行-中国农业银行银行卡交易明细清单
HEADERS_MAPPING.update(
    {
        '对方账号和户名': BASE_HEADERS_MAPPING['对方卡号/账号'],
    }
)
# 竖版-无表格-农业银行-中国农业银行银行卡活期存折交易明细清单.pdf
# 竖版-无表格-农业银行-扩张.pdf
# 竖版-无表格-农业银行-缩进.pdf
HEADERS_MAPPING.update(
    {
        '日期': BASE_HEADERS_MAPPING['记账日期'],
        '短摘要': BASE_HEADERS_MAPPING['附言'],
        '本次余额': BASE_HEADERS_MAPPING['余额'],
    }
)
# 竖版-无表格-农业银行-无标题(对手帐号)
HEADERS_MAPPING.update(
    {
        '交易后余额': BASE_HEADERS_MAPPING['余额'],
        '对手帐号': BASE_HEADERS_MAPPING['对方卡号/账号'],
    }
)
# 竖版-无表格-农商行(非常规)
HEADERS_MAPPING.update(
    {
        '交易说明': BASE_HEADERS_MAPPING['附言'],
    }
)
# 竖版-无表格-工商银行 抬头三行 活期历史明细清单
HEADERS_MAPPING.update(
    {
        '对方账户': BASE_HEADERS_MAPPING['对方卡号/账号'],
    }
)

# -----------针式打印-全格线--------------------------------------------------------------------------------------------
# 竖版-表格-建设银行-中国建设银行活期账户交易明细
# 竖版-表格-建设银行-中国建设银行活期账户明细清单
# 竖版-表格-建设银行-对私活期账户明细- (1).pdf
HEADERS_MAPPING.update(
    {
        '帐户余额': BASE_HEADERS_MAPPING['余额'],
        '对方帐户名称': BASE_HEADERS_MAPPING['对方账户名'],
    }
)
# 竖版-特殊-交通银行 零售客户交易清单 5000以上交易记录
HEADERS_MAPPING.update(
    {
        '交易日期 记账日期': BASE_HEADERS_MAPPING['记账日期'],
    }
)

# ----------针式打印-部分格线------------------------------------------------------------------------------------------
# 竖版-特殊-邮储银行-一本通绿卡通交易明细(客户)
# 竖版-特殊-邮储银行-账户交易明细(客户)
HEADERS_MAPPING.update(
    {
        '对方账号/卡号/汇票号': BASE_HEADERS_MAPPING['对方卡号/账号'],
    }
)

# --------------------------------------------------------------------------------------------------------------------

# ('记账日期', '记账时间', '金额', '余额', '交易名称', '附言', '对方账户名', '对方卡号/账号', '对方开户行', '核对结果', '借贷', '收入', '支出')
# CLASSIFY_LIST = [
#     # --------------普通打印:全格线---------------------------------
#     # 中国银行:记账日期 记账时间 币别 金额 余额 交易名称 渠道 网点名称 附言 对方账户名 对方卡号/账号 对方开户行
#     ('中国银行', (1, 2, 4, 5, 6, 9, 10, 11, 12, None, None, None, None)),        # 横版-表格-中国银行(不规则)
#
#     # 农业银行:交易日期 交易网点 存入 支出 余额 对方账号 对方名称 摘要 渠道 附言
#     ('农业银行-10', (1, None, None, 5, None, 8, 7, 6, None, None, None, 3, 4)),  # 横版-表格-农业银行-中国农业银行个人账户明细
#
#     # 农业银行:序号 日期 摘要 交易金额 余额 对方账号 对方名称 交易地点 渠道 附言
#     ('农业银行-10-1', (2, None, 4, 5, None, 3, 7, 6, None, None, None, None, None)),
#
#     # 农业银行:交易日期 摘要 交易金额 余额 交易渠道 交易网点 对方账号 对方名称 附言
#     ('农业银行-9', (1, None, 3, 4, None, 2, 8, 7, None, None, None, None, None)),
#
#     # 北京银行:交易日期 业务摘要 收/支 发生额 余额 对方户名 对方账号 交易渠道
#     ('北京银行', (1, None, 4, 5, None, 2, 6, 7, None, None, 3, None, None)),  # 横版-表格-北京银行
#
#     # 工商银行:交易日期 账号 储种 序号 币种 钞汇 摘要 地区 收入/支出金额 余额 渠道
#     ('工商银行', (1, None, 9, 10, None, 7, None, None, None, None, None, None, None)),
#
#     # 工商银行:交易日期 账号 储种 序号 币种 钞汇 摘要 地区 收入/支出金额 余额 对方户名 对方账号 渠道
#     ('工商银行-电子账单', (1, None, 9, 10, None, 7, 11, 12, None, None, None, None, None)),
#
#     # 建设银行:空  摘要 交易日期 交易金额 账户余额 商户/网点号及其名称 对方账号与户名                             --> 竖版-表格-建设银行
#     #         序号 摘要 币别     钞汇   交易日期     交易金额        账户余额     交易地点附言   对方账号与户名   --> 横版-表格-建设银行
#     ('建设银行-竖版', (3, None, 4, 5, None, 2, None, 7, None, None, None, None, None)),
#     ('建设银行-横版', (5, None, 6, 7, None, 2, None, 9, None, None, None, None, None)),
#
#     # 微信:交易单号 交易时间 交易类型 收/支/其他 交易方式 金额(元) 交易对方 商户单号
#     ('微信', (2, None, 6, None, None, 3, 7, None, None, None, None, None, None)),
#
#     # 支付宝:流水号 时间 名称/备注 收入 支出 账户余额 资金渠道
#     ('支付宝', (2, None, None, 6, None, 3, None, None, None, None, None, 4, 5)),
#
#     # -----------------普通打印:部分格线--------------------------------
#
#     # 农业银行:交易日期 摘要/附言 交易金额 余额 交易地点/对方账号和户名
#     ('农业银行-5', (1, None, 3, 4, None, 2, None, 5, None, None, None, None, None)),
#
#     # 农业银行:日期 地点 摘要 存入 支出 余额 对方账号 对方户名
#     ('农业银行-8', (1, None, None, 6, None, 3, 8, 7, None, None, None, 4, 5)),

#     # 农业银行:日期 摘要 交易金额 余额 地点 交易对手账号 对方户名
#     ('农业银行-窄页', (1, None, 3, 4, None, 2, 7, 6, None, None, None, None, None)),
#
#     # 农商行:交易日期 交易发生额 账户余额 对方账号 对方户名 摘要 备注
#     ('农商行', (1, None, 2, 3, None, 6, 5, 4, None, None, None, None, None)),
#
#     # 中信银行:交易日期 交易摘要 收入金额 支出金额 账户余额 对方户名 对方账号 对方银行 交易流水号
#     ('中信银行', (1, None, None, 5, None, 2, 6, 7, 8, None, None, 3, 4)),
#
#     # 平安电子账单:序号 交易日期 交易网点 摘要 借贷发生额(借:-贷:+) 账户余额
#     ('平安电子账单', (2, None, 5, 6, None, 4, None, None, None, None, None, None, None)),

#     # 建设银行:序号 摘要 币别 钞汇 交易日期 交易金额 账户余额 交易地点附言 对方账号与户名
#     ('建设银行-电子账单', (5, None, 6, 7, None, 2, None, 9, None, None, None, None, None)),
#
#     # -----------------普通打印:无格线-------------------------------------
#
#     # 招商银行:记账日期 货币 交易金额 联机余额 冲补账 交易摘要
#     ('招商银行', (1, None, 3, 4, None, 6, None, None, None, None, None, None, None)),
#
#     # 邮储银行:交易日期、交易类型 交易币种     交易金额(元) 账户余额(元) [对手方户名 对手方账户 收支类型]  --> 竖版-无表格-邮储银行-账户对账单 含有对手方户名 对手方账户
#     #         交易日期、交易类型 交易金额(元) 账户余额(元) 操作柜员                              --> 竖版-无表格-邮储银行 账户对账单
#     ('邮储银行-8', (1, None, 4, 5, None, 2, 6, 7, None, None, None, None, None)),
#     ('邮储银行-5', (1, None, 3, 4, None, 2, None, None, None, None, None, None, None)),
#
#     # 工商银行电子版:交易日期 账号 储种 序号 币种 妙汇 摘要 地区 收入/支出金额 余额 [对方户名 对方账号] 渠道
#     ('工商银行电子版', (1, None, 9, 10, None, 7, None, None, None, None, None, None, None)),
#
#     # 招商银行电子版:记账日期 货币 交易金额 联机余额 交易摘要 对手信息
#     ('招商银行电子版', (1, None, 3, 4, None, 5, 6, None, None, None, None, None, None)),
#
#     # 民生银行:凭证类型 凭证号码 摘要信息 交易时间 交易金额 账户余额 现转标志 交易渠道 交易机构 对方户名 对方行名  --> 横版-无表格-民生银行-中国民生银行个人账户对账单(客户卡号)
#     #         凭证类型 凭证号码 交易时间   摘要  交易金额 账户余额 现转标志 交易渠道 交易机构 对方户名 对方行名     --> 横版-无表格-民生银行
#     ('民生银行', (None, None, 5, 6, None, None, 7, None, 8, None, None, None, None)),
#
#     # 农业银行:交易日期 摘要/附言 交易金额 对方账号和户名
#     ('农业银行-整数', (1, None, 3, None, None, 2, None, 4, None, None, None, None, None)),
#
#     # 农业银行:交易日期 摘要/附言 交易金额 余额 交易地点/对方账号和户名
#     ('农业银行', (1, None, 3, 4, None, 2, None, 5, None, None, None, None, None)),
#
#     # 农业银行:日期、时间、短摘要、交易金额、本次余额、交易网点、渠道、附言
#     # 农业银行:日期、时间、日志号、短摘要、交易金额、本次余额、交易网点、渠道、附言
#     ('农业银行', (1, 2, 4, 5, None, 3, None, None, None, None, None, None, None)),
#     ('农业银行-扩张缩进', (1, 2, 5, 6, None, 4, None, None, None, None, None, None, None)),
#
#     # 交通银行:交易日期 记账日期、交易地点、交易类型、借贷状态、交易金额、余额
#     ('交通银行', (1, None, 5, 6, None, 3, None, None, None, None, 4, None, None)),
#
#
#     # ================针式打印:有格线===================
#
#     # 建设银行:  摘要、交易日期、交易金额、账户余额、商户/网点号及其名称、对方账号、对方户名                    --> 竖版-表格-建设银行-中国建设银行活期账户明细清单
#     #         交易日期、摘要、    币种、   钞汇、      交易金额、     帐户余额、对方账号、 对方帐户名称       --> 竖版-表格-建设银行-对私活期账户明细- (1)
#     ('建设银行', (None, None, None, None, None, None, None, None, None, None, None, None, None)),
#
#
#     # ================针式打印:无格线===================
#
#     # 邮储银行:序号、交易日期、交易渠道、摘要、交易金额、账户余额、对方账号/卡号/汇票号、原子账号、交易机构名称
#     ('邮储银行', (2, None, 5, 6, None, 4, None, 7, None, None, None, None, None)),
# ]

OTHER_TUPLE = (None, None, None, None, None, None, None, None, None, None, None, None, None)

# {
#     "0":"其他",
#     "1":"普通打印-全表格-中国农业银行",
#     "2":"普通打印-全表格-中国银行",
#     "3":"普通打印-全表格-北京银行",
#     "4":"普通打印-全表格-工商银行",
#     "5":"普通打印-全表格-建设银行",
#     "6":"普通打印-全表格-微信账单",
#     "7":"普通打印-全表格-支付宝账单",
#     "8":"普通打印-无格线-中国邮政储蓄银行",

#     "9":"普通打印-无格线-交通银行",
#     "10":"普通打印-无格线-农业银行整数",
#     "11":"普通打印-无格线-农业银行银行活期扩张缩进",
#     "12":"普通打印-无格线-招商银行",
#     "13":"普通打印-无格线-招行电子账单",
#     "14":"普通打印-无格线-民生银行",

#     "15":"普通打印-部分格线-横版-中信银行",
#     "16":"普通打印-部分格线-竖版-中国农业银行分账户窄页",
#     "17":"普通打印-部分格线-竖版-农业银行",
#     "18":"普通打印-部分格线-竖版-农业银行银行卡交易明细",
#     "19":"普通打印-部分格线-竖版-平安电子账单",

#     "20":"针式打印-全格线-建设银行",
#     "21":"针式打印-部分格线-竖版-邮储银行账户交易",
#     "22":"针式打印-部分格线-邮储银行一本通绿卡"
# }

# CLASSIFY_LIST = [
#     ('其他', OTHER_TUPLE),
#     ('农业银行', (1, None, 3, 5, None, 8, 7, 6, None, None, None, None, None)),
#     ('中国银行', (1, 2, 4, 5, 6, 9, 10, 11, 12, None, None, None, None)),
#     ('北京银行', (1, None, 4, 5, None, 2, 6, 7, None, None, 3, None, None)),
#     ('工商银行', (1, None, 9, 10, None, 7, None, None, None, None, None, None, None)),
#     ('建设银行', (None, None, None, None, None, 2, None, None, None, None, None, None, None)),
#     ('微信', (2, None, 6, None, None, 3, 7, None, None, None, None, None, None)),
#     ('支付宝', (2, None, None, 6, None, 3, None, None, None, None, None, 4, 5)),
#
#     ('交通银行', (1, None, 5, 6, None, 3, None, None, None, None, 4, None, None)),
#     ('农业银行', (1, None, 3, None, None, 2, None, 4, None, None, None, None, None)),
#     ('农业银行', (1, 2, None, None, None, None, None, None, None, None, None, None, None)),
#     ('招商银行', (1, None, 3, 4, None, 6, None, None, None, None, None, None, None)),
#     ('招商银行电子版', (1, None, 3, 4, None, 5, 6, None, None, None, None, None, None)),
#     ('民生银行', (None, None, 5, 6, None, None, 7, None, 8, None, None, None, None)),
#
#     ('中信银行', (1, None, None, 5, None, 2, 6, 7, 8, None, None, 3, 4)),
#     ('农业银行', (1, None, 3, 4, None, 2, None, 5, None, None, None, None, None)),
#     ('农业银行', (1, None, 3, 4, None, 2, None, 5, None, None, None, None, None)),
#     ('农业银行', (1, None, 3, 4, None, 2, None, 5, None, None, None, None, None)),
#     ('平安电子账单', (2, None, 5, 6, None, 4, None, None, None, None, None, None, None)),
#
#     ('建设银行', (None, None, None, None, None, None, None, None, None, None, None, None, None)),
#     ('邮储银行', (2, None, 5, 6, None, 4, None, 7, None, None, None, None, None)),
#     ('邮储银行', (2, None, 5, 6, None, 4, None, 7, None, None, None, None, None)),
# ]

#     "4":"普通打印-全表格-中国银行",
#     "5":"普通打印-全表格-农业银行-10列",
#     "6":"普通打印-全表格-农业银行-10列-1",
#     "7":"普通打印-全表格-农业银行-9列",
#     "8":"普通打印-全表格-北京银行",
#     "9":"普通打印-全表格-工商银行",
#     "10":"普通打印-全表格-工商银行-电子账单",
#     "11":"普通打印-全表格-建设银行",
#     "12":"普通打印-全表格-微信账单",
#     "13":"普通打印-全表格-支付宝账单",

#     "14":"普通打印-无格线-交通银行",
#     "15":"普通打印-无格线-储蓄银行-5列",
#     "16":"普通打印-无格线-储蓄银行-8列",
#     "17":"普通打印-无格线-农业银行-扩张缩进",
#     "18":"普通打印-无格线-农业银行-整数",
#     "19":"普通打印-无格线-招商银行",
#     "20":"普通打印-无格线-招商银行-电子账单",
#     "21":"普通打印-无格线-民生银行",

#     "22":"普通打印-部分格线-横版-中信银行",
#     "23":"普通打印-部分格线-竖版-农业银行-5列",
#     "24":"普通打印-部分格线-竖版-农业银行-8列",
#     "25":"普通打印-部分格线-竖版-农业银行-窄页",
#     "26":"普通打印-部分格线-竖版-平安电子账单",
#     "27":"普通打印-部分格线-竖版-建设银行-电子账单",

#     "34":"针式打印-全格线-建设银行",
#     "35":"针式打印-部分格线-竖版-邮储银行",
#     "36":"针式打印-部分格线-竖版-邮储银行-绿卡",

CLASSIFY_LIST = [
    ('其他', OTHER_TUPLE),
    ('其他', OTHER_TUPLE),
    ('其他', OTHER_TUPLE),
    ('其他', OTHER_TUPLE),
    ('普通打印-全表格-中国银行', (1, 2, 4, 5, 6, 9, 10, 11, 12, None, None, None, None)),
    ('普通打印-全表格-农业银行-10列', (1, None, None, 5, None, 8, 7, 6, None, None, None, 3, 4)),
    ('普通打印-全表格-农业银行-10列-1', (2, None, 4, 5, None, 3, 7, 6, None, None, None, None, None)),
    ('普通打印-全表格-农业银行-9列', (1, None, 3, 4, None, 2, 8, 7, None, None, None, None, None)),
    ('普通打印-全表格-北京银行', (1, None, 4, 5, None, 2, 6, 7, None, None, 3, None, None)),
    ('普通打印-全表格-工商银行', (1, None, 9, 10, None, 7, None, None, None, None, None, None, None)),
    ('普通打印-全表格-工商银行-电子账单', (1, None, 9, 10, None, 7, 11, 12, None, None, None, None, None)),
    ('普通打印-全表格-建设银行', (3, None, 4, 5, None, 2, None, 7, None, None, None, None, None)),
    ('普通打印-全表格-微信账单', (2, None, 6, None, None, 3, 7, None, None, None, None, None, None)),
    ('普通打印-全表格-支付宝账单', (2, None, None, 6, None, 3, None, None, None, None, None, 4, 5)),

    ('普通打印-无格线-交通银行', (1, None, 5, 6, None, 3, None, None, None, None, 4, None, None)),
    ('普通打印-无格线-储蓄银行-5列', (1, None, 3, 4, None, 2, None, None, None, None, None, None, None)),
    ('普通打印-无格线-储蓄银行-8列', (1, None, 4, 5, None, 2, 6, 7, None, None, None, None, None)),
    ('普通打印-无格线-农业银行-扩张缩进', (1, 2, 5, 6, None, 4, None, None, None, None, None, None, None)),
    ('普通打印-无格线-农业银行-整数', (1, None, 3, None, None, 2, None, 4, None, None, None, None, None)),
    ('普通打印-无格线-招商银行', (1, None, 3, 4, None, 6, None, None, None, None, None, None, None)),
    ('普通打印-无格线-招商银行-电子账单', (1, None, 3, 4, None, 5, 6, None, None, None, None, None, None)),
    ('普通打印-无格线-民生银行', (None, None, 5, 6, None, None, 7, None, 8, None, None, None, None)),

    ('普通打印-部分格线-横版-中信银行', (1, None, None, 5, None, 2, 6, 7, 8, None, None, 3, 4)),
    ('普通打印-部分格线-竖版-农业银行-5列', (1, None, 3, 4, None, 2, None, 5, None, None, None, None, None)),
    ('普通打印-部分格线-竖版-农业银行-8列', (1, None, None, 6, None, 3, 8, 7, None, None, None, 4, 5)),
    ('普通打印-部分格线-竖版-农业银行-窄页', (1, None, 3, 4, None, 2, 7, 6, None, None, None, None, None)),
    ('普通打印-部分格线-竖版-平安电子账单', (2, None, 5, 6, None, 4, None, None, None, None, None, None, None)),
    ('普通打印-部分格线-竖版-建设银行-电子账单', (5, None, 6, 7, None, 2, None, 9, None, None, None, None, None)),
    ('其他', OTHER_TUPLE),
    ('其他', OTHER_TUPLE),
    ('其他', OTHER_TUPLE),
    ('其他', OTHER_TUPLE),
    ('其他', OTHER_TUPLE),
    ('其他', OTHER_TUPLE),
    ('针式打印-全格线-建设银行', OTHER_TUPLE),
    ('针式打印-部分格线-竖版-邮储银行', (2, None, 5, 6, None, 4, None, 7, None, None, None, None, None)),
    ('针式打印-部分格线-竖版-邮储银行-绿卡', (2, None, 5, 6, None, 4, None, 7, None, None, None, None, None)),
    ('其他', OTHER_TUPLE),
]

# ----------license相关------------------------------------------------------------------------------------------------

#     "0":"AVT Invioce",
#     "1":"二手车发票",
#     "2":"其他",
#     "3":"护照",
#     "28":"机动车登记证",
#     "29":"机动车销售统一发票",
#     "30":"港澳通行证",
#     "31":"营业执照",
#     "32":"行驶证",
#     "33":"身份证",
#     "37":"银行卡"

# 其他
OTHER_CLASSIFY = 2

# 身份证
IC_CN_NAME = '身份证'
IC_CLASSIFY = 33
# 增值税发票
VAT_CN_NAME = '增值税发票'
VAT_CLASSIFY = 0
# 机动车登记证书
MVC_CN_NAME = '机动车登记证书'
MVC_CLASSIFY = 28
# 机动车销售统一发票
MVI_CN_NAME = '机动车销售统一发票'
MVI_CLASSIFY = 29
IC_PID = VAT_PID = MVC_PID = MVI_PID = None

# 营业执照
BL_CN_NAME = '营业执照'
BL_CLASSIFY = 31
BL_PID = 41
# 二手车发票
UCI_CN_NAME = '二手车发票'
UCI_CLASSIFY = 1
UCI_PID = 60
# 港澳台通行证
EEP_CN_NAME = '港澳台通行证'
EEP_CLASSIFY = 30
EEP_PID = 1018
# 行驶证
DL_CN_NAME = '行驶证'
DL_CLASSIFY = 32
DL_PID = 5
# 护照
PP_CN_NAME = '护照'
PP_CLASSIFY = 3
PP_PID = 8
# 银行卡
BC_CN_NAME = '银行卡'
BC_CLASSIFY = 37
BC_PID = 4
BC_FIELD = (('CardNum', '银行卡号'),
            ('BankName', '发卡行名称'),
            ('CardName', '银行卡名称'),
            ('BankCode', '发卡行代号'),
            ('CardType', '银行卡类型'),
            ('Date', '日期'))

SUCCESS_CODE_SET = {'0', 0}

LICENSE_ORDER = ((MVI_CLASSIFY, (MVI_PID, MVI_CN_NAME)),
                 (IC_CLASSIFY, (IC_PID, IC_CN_NAME)),
                 (BC_CLASSIFY, (BC_PID, BC_CN_NAME)),
                 (BL_CLASSIFY, (BL_PID, BL_CN_NAME)),
                 (UCI_CLASSIFY, (UCI_PID, UCI_CN_NAME)),
                 (EEP_CLASSIFY, (EEP_PID, EEP_CN_NAME)),
                 (DL_CLASSIFY, (DL_PID, DL_CN_NAME)),
                 (PP_CLASSIFY, (PP_PID, PP_CN_NAME)),
                 (MVC_CLASSIFY, (MVC_PID, MVC_CN_NAME)),
                 (VAT_CLASSIFY, (VAT_PID, VAT_CN_NAME)))

LICENSE_CLASSIFY_MAPPING = dict(LICENSE_ORDER)

OTHER_CLASSIFY_SET = {OTHER_CLASSIFY}
LICENSE_CLASSIFY_SET_1 = {IC_CLASSIFY, VAT_CLASSIFY, MVC_CLASSIFY, MVI_CLASSIFY}
LICENSE_CLASSIFY_SET_2 = {BL_CLASSIFY, UCI_CLASSIFY, EEP_CLASSIFY, DL_CLASSIFY, PP_CLASSIFY, BC_CLASSIFY}