consts.py 16.2 KB
PAGE_DEFAULT = 1
PAGE_SIZE_DEFAULT = 10

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']

FIXED_APPLICATION_ID_PREFIX = 'CH-S'

DOC_SCHEME_LIST = ['ACCEPTANCE', 'SETTLEMENT', 'CONTRACT MANAGEMENT']
DATA_SOURCE_LIST = ['POS', 'E-APP', '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'}

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'

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['对方开户行'],
        '交易摘要': 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)),        # 横版-表格-中国银行(不规则)
#     ('农业银行', (1, None, 3, 5, None, 8, 7, 6, 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)),
#
#     # 建设银行:空  摘要 交易日期 交易金额 账户余额 商户/网点号及其名称 对方账号与户名       --> 竖版-表格-建设银行
#     #         序号 摘要 币别     钞汇   交易日期     交易金额        账户余额     交易地点附言   对方账号与户名   --> 横版-表格-建设银行
#     ('建设银行', (None, None, None, None, None, 2, None, None, None, None, None, None, None)),
#
#     # 微信:交易单号 交易时间 交易类型 收/支/其他 交易方式 金额(元) 交易对方 商户单号
#
#     # 支付宝:流水号 时间 名称/备注 收入 支出 账户余额 资金渠道
#
#     # -----------------
#
#     # 农业银行:交易日期 摘要/附言 交易金额 余额 交易地点/对方账号和户名
#     ('农业银行', (1, None, 3, 4, None, 2, None, 5, 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)),
#
#     # -------------------------
#
#     # 招商银行:记账日期 货币 交易金额 联机余额 冲补账 交易摘要
#
#     # 邮储银行:交易日期、交易类型 交易币种 交易金额(元) 账户余额(元) [对手方户名 对手方账户 收支类型]  --> 竖版-无表格-邮储银行-账户对账单 含有对手方户名 对手方账户
#     #         交易日期、交易类型 交易金额(元) 账户余额(元) 操作柜员  --> 竖版-无表格-邮储银行 账户对账单
#
#     # 工商银行电子版:交易日期 账号 储种 序号 币种 妙汇 摘要 地区 收入/支出金额 余额 [对方户名 对方账号] 渠道
#
#     # 招商银行电子版:记账日期 货币 交易金额 联机余额 交易摘要 对手信息
#
#     # 民生银行:凭证类型 凭证号码 摘要信息 交易时间 交易金额 账户余额 现转标志 交易渠道 交易机构 对方户名 对方行名
#     #         凭证类型 凭证号码 交易时间 摘要 交易金额 账户余额 现转标志 交易渠道 交易机构 对方户名 对方行名
#
#     # 农业银行:交易日期 摘要/附言 交易金额 对方账号和户名
#
#     # 农业银行:交易日期 摘要/附言 交易金额 余额 交易地点/对方账号和户名
#
#     # 农业银行:日期、时间、[日志号]、短摘要、交易金额、本次余额、交易网点、渠道、附言
#
#     # 交通银行:交易日期 记账日期、交易地点、交易类型、借贷状态、交易金额、余额
#
#     # ===================================
#
#     # 建设银行:摘要、交易日期、交易金额、账户余额、商户/网点号及其名称、对方账号、对方户名
#     #         交易日期、摘要、币种、钞汇、交易金额、帐户余额、对方账号、对方帐户名称
#
#
#     # ===================================
#
#     # 邮储银行:序号、交易日期、交易渠道、摘要、交易金额、账户余额、对方账号/卡号/汇票号、原子账号、交易机构名称
#
#     # 建设银行:序号 摘要 币别 钞汇 交易日期 交易金额 账户余额 交易地点附言 对方账号与户名
# ]

# {
#     "0": "全表格-中国农业银行个人账户明细",
#     "1": "全表格-中国银行",
#     "2": "全表格-北京银行",
#     "3": "全表格-工商银行",
#     "4": "全表格-建设银行",
#     "5": "部分格线-横版-中信银行账户交易明细",
#     "6": "部分格线-横版-中信银行账户交易明细特殊",
#     "7": "部分格线-竖版-中国农业银行",
#     "8": "部分格线-竖版-中国农业银行分账户(窄页)",
#     "9": "部分格线-竖版-平安电子账单"
# }
CLASSIFY_LIST = [
    ('农业银行', (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)),
    ('中信银行', (1, None, None, 5, None, 2, 6, 7, 8, None, None, 3, 4)),
    ('中信银行', (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)),
    ('平安电子账单', (2, None, 5, 6, None, 4, None, None, None, None, None, None, None)),
]