154cff10 by 周伟奇

update classify

1 parent a8c68474
...@@ -11,7 +11,7 @@ DATE_FORMAT = ['%Y年%m月%d日', '%Y/%m/%d', '%Y-%m-%d', '%Y%m%d'] ...@@ -11,7 +11,7 @@ DATE_FORMAT = ['%Y年%m月%d日', '%Y/%m/%d', '%Y-%m-%d', '%Y%m%d']
11 FIXED_APPLICATION_ID_PREFIX = 'CH-S' 11 FIXED_APPLICATION_ID_PREFIX = 'CH-S'
12 12
13 DOC_SCHEME_LIST = ['ACCEPTANCE', 'SETTLEMENT', 'CONTRACT MANAGEMENT'] 13 DOC_SCHEME_LIST = ['ACCEPTANCE', 'SETTLEMENT', 'CONTRACT MANAGEMENT']
14 DATA_SOURCE_LIST = ['POS', 'E-APP', 'ECONTRACT'] 14 DATA_SOURCE_LIST = ['POS', 'EAPP', 'ECONTRACT']
15 15
16 HIL_PREFIX = 'HIL' 16 HIL_PREFIX = 'HIL'
17 AFC_PREFIX = 'AFC' 17 AFC_PREFIX = 'AFC'
...@@ -289,8 +289,14 @@ HEADERS_MAPPING.update( ...@@ -289,8 +289,14 @@ HEADERS_MAPPING.update(
289 289
290 # ('记账日期', '记账时间', '金额', '余额', '交易名称', '附言', '对方账户名', '对方卡号/账号', '对方开户行', '核对结果', '借贷', '收入', '支出') 290 # ('记账日期', '记账时间', '金额', '余额', '交易名称', '附言', '对方账户名', '对方卡号/账号', '对方开户行', '核对结果', '借贷', '收入', '支出')
291 # CLASSIFY_LIST = [ 291 # CLASSIFY_LIST = [
292 # # --------------普通打印:全格线---------------------------------
293 # # 中国银行:记账日期 记账时间 币别 金额 余额 交易名称 渠道 网点名称 附言 对方账户名 对方卡号/账号 对方开户行
292 # ('中国银行', (1, 2, 4, 5, 6, 9, 10, 11, 12, None, None, None, None)), # 横版-表格-中国银行(不规则) 294 # ('中国银行', (1, 2, 4, 5, 6, 9, 10, 11, 12, None, None, None, None)), # 横版-表格-中国银行(不规则)
295 #
296 # # 农业银行:交易日期 交易网点 存入 支出 余额 对方账号 对方名称 摘要 渠道 附言
293 # ('农业银行', (1, None, 3, 5, None, 8, 7, 6, None, None, None, None, None)), # 横版-表格-农业银行-中国农业银行个人账户明细 297 # ('农业银行', (1, None, 3, 5, None, 8, 7, 6, None, None, None, None, None)), # 横版-表格-农业银行-中国农业银行个人账户明细
298 #
299 # # 北京银行:交易日期 业务摘要 收/支 发生额 余额 对方户名 对方账号 交易渠道
294 # ('北京银行', (1, None, 4, 5, None, 2, 6, 7, None, None, 3, None, None)), # 横版-表格-北京银行 300 # ('北京银行', (1, None, 4, 5, None, 2, 6, 7, None, None, 3, None, None)), # 横版-表格-北京银行
295 # 301 #
296 # # 工商银行:交易日期 账号 储种 序号 币种 钞汇 摘要 地区 收入/支出金额 余额 [对方户名 对方账号] 渠道 302 # # 工商银行:交易日期 账号 储种 序号 币种 钞汇 摘要 地区 收入/支出金额 余额 [对方户名 对方账号] 渠道
...@@ -301,15 +307,18 @@ HEADERS_MAPPING.update( ...@@ -301,15 +307,18 @@ HEADERS_MAPPING.update(
301 # ('建设银行', (None, None, None, None, None, 2, None, None, None, None, None, None, None)), 307 # ('建设银行', (None, None, None, None, None, 2, None, None, None, None, None, None, None)),
302 # 308 #
303 # # 微信:交易单号 交易时间 交易类型 收/支/其他 交易方式 金额(元) 交易对方 商户单号 309 # # 微信:交易单号 交易时间 交易类型 收/支/其他 交易方式 金额(元) 交易对方 商户单号
310 # ('微信', (2, None, 6, None, None, 3, 7, None, None, None, None, None, None)),
304 # 311 #
305 # # 支付宝:流水号 时间 名称/备注 收入 支出 账户余额 资金渠道 312 # # 支付宝:流水号 时间 名称/备注 收入 支出 账户余额 资金渠道
313 # ('支付宝', (2, None, None, 6, None, 3, None, None, None, None, None, 4, 5)),
306 # 314 #
307 # # ----------------- 315 # # -----------------普通打印:部分格线--------------------------------
308 # 316 #
309 # # 农业银行:交易日期 摘要/附言 交易金额 余额 交易地点/对方账号和户名 317 # # 农业银行:交易日期 摘要/附言 交易金额 余额 交易地点/对方账号和户名
310 # ('农业银行', (1, None, 3, 4, None, 2, None, 5, None, None, None, None, None)), 318 # ('农业银行', (1, None, 3, 4, None, 2, None, 5, None, None, None, None, None)),
311 # 319 #
312 # # 农商行:交易日期 交易发生额 账户余额 对方账号 对方户名 摘要 备注 320 # # 农商行:交易日期 交易发生额 账户余额 对方账号 对方户名 摘要 备注
321 # ('农商行', (1, None, 2, 3, None, 6, 5, 4, None, None, None, None, None)),
313 # 322 #
314 # # 中信银行:交易日期 交易摘要 收入金额 支出金额 账户余额 对方户名 对方账号 对方银行 交易流水号 323 # # 中信银行:交易日期 交易摘要 收入金额 支出金额 账户余额 对方户名 对方账号 对方银行 交易流水号
315 # ('中信银行', (1, None, None, 5, None, 2, 6, 7, 8, None, None, 3, 4)), 324 # ('中信银行', (1, None, None, 5, None, 2, 6, 7, 8, None, None, 3, 4)),
...@@ -317,39 +326,52 @@ HEADERS_MAPPING.update( ...@@ -317,39 +326,52 @@ HEADERS_MAPPING.update(
317 # # 平安电子账单:序号 交易日期 交易网点 摘要 借贷发生额(借:-贷:+) 账户余额 326 # # 平安电子账单:序号 交易日期 交易网点 摘要 借贷发生额(借:-贷:+) 账户余额
318 # ('平安电子账单', (2, None, 5, 6, None, 4, None, None, None, None, None, None, None)), 327 # ('平安电子账单', (2, None, 5, 6, None, 4, None, None, None, None, None, None, None)),
319 # 328 #
320 # # ------------------------- 329 # # -----------------普通打印:无格线-------------------------------------
321 # 330 #
322 # # 招商银行:记账日期 货币 交易金额 联机余额 冲补账 交易摘要 331 # # 招商银行:记账日期 货币 交易金额 联机余额 冲补账 交易摘要
332 # ('招商银行', (1, None, 3, 4, None, 6, None, None, None, None, None, None, None)),
323 # 333 #
324 # # 邮储银行:交易日期、交易类型 交易币种 交易金额(元) 账户余额(元) [对手方户名 对手方账户 收支类型] --> 竖版-无表格-邮储银行-账户对账单 含有对手方户名 对手方账户 334 # # 邮储银行:交易日期、交易类型 交易币种 交易金额(元) 账户余额(元) [对手方户名 对手方账户 收支类型] --> 竖版-无表格-邮储银行-账户对账单 含有对手方户名 对手方账户
325 # # 交易日期、交易类型 交易金额(元) 账户余额(元) 操作柜员 --> 竖版-无表格-邮储银行 账户对账单 335 # # 交易日期、交易类型 交易金额(元) 账户余额(元) 操作柜员 --> 竖版-无表格-邮储银行 账户对账单
336 # ('邮储银行', (1, None, None, None, None, 2, None, None, None, None, None, None, None)),
326 # 337 #
327 # # 工商银行电子版:交易日期 账号 储种 序号 币种 妙汇 摘要 地区 收入/支出金额 余额 [对方户名 对方账号] 渠道 338 # # 工商银行电子版:交易日期 账号 储种 序号 币种 妙汇 摘要 地区 收入/支出金额 余额 [对方户名 对方账号] 渠道
339 # ('工商银行电子版', (1, None, 9, 10, None, 7, None, None, None, None, None, None, None)),
328 # 340 #
329 # # 招商银行电子版:记账日期 货币 交易金额 联机余额 交易摘要 对手信息 341 # # 招商银行电子版:记账日期 货币 交易金额 联机余额 交易摘要 对手信息
342 # ('招商银行电子版', (1, None, 3, 4, None, 5, 6, None, None, None, None, None, None)),
330 # 343 #
331 # # 民生银行:凭证类型 凭证号码 摘要信息 交易时间 交易金额 账户余额 现转标志 交易渠道 交易机构 对方户名 对方行名 344 # # 民生银行:凭证类型 凭证号码 摘要信息 交易时间 交易金额 账户余额 现转标志 交易渠道 交易机构 对方户名 对方行名 --> 横版-无表格-民生银行-中国民生银行个人账户对账单(客户卡号)
332 # # 凭证类型 凭证号码 交易时间 摘要 交易金额 账户余额 现转标志 交易渠道 交易机构 对方户名 对方行名 345 # # 凭证类型 凭证号码 交易时间 摘要 交易金额 账户余额 现转标志 交易渠道 交易机构 对方户名 对方行名 --> 横版-无表格-民生银行
346 # ('民生银行', (None, None, 5, 6, None, None, 7, None, 8, None, None, None, None)),
333 # 347 #
334 # # 农业银行:交易日期 摘要/附言 交易金额 对方账号和户名 348 # # 农业银行:交易日期 摘要/附言 交易金额 对方账号和户名
349 # ('农业银行', (1, None, 3, None, None, 2, None, 4, None, None, None, None, None)),
335 # 350 #
336 # # 农业银行:交易日期 摘要/附言 交易金额 余额 交易地点/对方账号和户名 351 # # 农业银行:交易日期 摘要/附言 交易金额 余额 交易地点/对方账号和户名
352 # ('农业银行', (1, None, 3, 4, None, 2, None, 5, None, None, None, None, None)),
337 # 353 #
338 # # 农业银行:日期、时间、[日志号]、短摘要、交易金额、本次余额、交易网点、渠道、附言 354 # # 农业银行:日期、时间、[日志号]、短摘要、交易金额、本次余额、交易网点、渠道、附言
355 # ('农业银行', (1, 2, None, None, None, None, None, None, None, None, None, None, None)),
339 # 356 #
340 # # 交通银行:交易日期 记账日期、交易地点、交易类型、借贷状态、交易金额、余额 357 # # 交通银行:交易日期 记账日期、交易地点、交易类型、借贷状态、交易金额、余额
358 # ('交通银行', (1, None, 5, 6, None, 3, None, None, None, None, 4, None, None)),
341 # 359 #
342 # # ===================================
343 # 360 #
344 # # 建设银行:摘要、交易日期、交易金额、账户余额、商户/网点号及其名称、对方账号、对方户名 361 # # ================针式打印:有格线===================
345 # # 交易日期、摘要、币种、钞汇、交易金额、帐户余额、对方账号、对方帐户名称
346 # 362 #
363 # # 建设银行: 摘要、交易日期、交易金额、账户余额、商户/网点号及其名称、对方账号、对方户名 --> 竖版-表格-建设银行-中国建设银行活期账户明细清单
364 # # 交易日期、摘要、 币种、 钞汇、 交易金额、 帐户余额、对方账号、 对方帐户名称 --> 竖版-表格-建设银行-对私活期账户明细- (1)
365 # ('建设银行', (None, None, None, None, None, None, None, None, None, None, None, None, None)),
347 # 366 #
348 # # =================================== 367 #
368 # # ================针式打印:无格线===================
349 # 369 #
350 # # 邮储银行:序号、交易日期、交易渠道、摘要、交易金额、账户余额、对方账号/卡号/汇票号、原子账号、交易机构名称 370 # # 邮储银行:序号、交易日期、交易渠道、摘要、交易金额、账户余额、对方账号/卡号/汇票号、原子账号、交易机构名称
371 # ('邮储银行', (2, None, 5, 6, None, 4, None, 7, None, None, None, None, None)),
351 # 372 #
352 # # 建设银行:序号 摘要 币别 钞汇 交易日期 交易金额 账户余额 交易地点附言 对方账号与户名 373 # # 建设银行:序号 摘要 币别 钞汇 交易日期 交易金额 账户余额 交易地点附言 对方账号与户名
374 # ('建设银行', (5, None, 6, 7, None, 2, None, 9, None, None, None, None, None)),
353 # ] 375 # ]
354 376
355 # { 377 # {
...@@ -364,6 +386,7 @@ HEADERS_MAPPING.update( ...@@ -364,6 +386,7 @@ HEADERS_MAPPING.update(
364 # "8": "部分格线-竖版-中国农业银行分账户(窄页)", 386 # "8": "部分格线-竖版-中国农业银行分账户(窄页)",
365 # "9": "部分格线-竖版-平安电子账单" 387 # "9": "部分格线-竖版-平安电子账单"
366 # } 388 # }
389
367 CLASSIFY_LIST = [ 390 CLASSIFY_LIST = [
368 ('农业银行', (1, None, 3, 5, None, 8, 7, 6, None, None, None, None, None)), 391 ('农业银行', (1, None, 3, 5, None, 8, 7, 6, None, None, None, None, None)),
369 ('中国银行', (1, 2, 4, 5, 6, 9, 10, 11, 12, None, None, None, None)), 392 ('中国银行', (1, 2, 4, 5, 6, 9, 10, 11, 12, None, None, None, None)),
...@@ -377,3 +400,59 @@ CLASSIFY_LIST = [ ...@@ -377,3 +400,59 @@ CLASSIFY_LIST = [
377 ('平安电子账单', (2, None, 5, 6, None, 4, None, None, None, None, None, None, None)), 400 ('平安电子账单', (2, None, 5, 6, None, 4, None, None, None, None, None, None, None)),
378 ] 401 ]
379 402
403 # {
404 # "0":"其他",
405 # "1":"普通打印-全表格-中国农业银行",
406 # "2":"普通打印-全表格-中国银行",
407 # "3":"普通打印-全表格-北京银行",
408 # "4":"普通打印-全表格-工商银行",
409 # "5":"普通打印-全表格-建设银行",
410 # "6":"普通打印-全表格-微信账单",
411 # "7":"普通打印-全表格-支付宝账单",
412 # "8":"普通打印-无格线-中国邮政储蓄银行",
413
414 # "9":"普通打印-无格线-交通银行",
415 # "10":"普通打印-无格线-农业银行整数",
416 # "11":"普通打印-无格线-农业银行银行活期扩张缩进",
417 # "12":"普通打印-无格线-招商银行",
418 # "13":"普通打印-无格线-招行电子账单",
419 # "14":"普通打印-无格线-民生银行",
420
421 # "15":"普通打印-部分格线-横版-中信银行",
422 # "16":"普通打印-部分格线-竖版-中国农业银行分账户窄页",
423 # "17":"普通打印-部分格线-竖版-农业银行",
424 # "18":"普通打印-部分格线-竖版-农业银行银行卡交易明细",
425 # "19":"普通打印-部分格线-竖版-平安电子账单",
426
427 # "20":"针式打印-全格线-建设银行",
428 # "21":"针式打印-部分格线-竖版-邮储银行账户交易",
429 # "22":"针式打印-部分格线-邮储银行一本通绿卡"
430 # }
431
432 # CLASSIFY_LIST = [
433 # ('其他', (None, None, None, None, None, None, None, None, None, None, None, None, None)),
434 # ('农业银行', (1, None, 3, 5, None, 8, 7, 6, None, None, None, None, None)),
435 # ('中国银行', (1, 2, 4, 5, 6, 9, 10, 11, 12, None, None, None, None)),
436 # ('北京银行', (1, None, 4, 5, None, 2, 6, 7, None, None, 3, None, None)),
437 # ('工商银行', (1, None, 9, 10, None, 7, None, None, None, None, None, None, None)),
438 # ('建设银行', (None, None, None, None, None, 2, None, None, None, None, None, None, None)),
439 # ('微信', (2, None, 6, None, None, 3, 7, None, None, None, None, None, None)),
440 # ('支付宝', (2, None, None, 6, None, 3, None, None, None, None, None, 4, 5)),
441 #
442 # ('交通银行', (1, None, 5, 6, None, 3, None, None, None, None, 4, None, None)),
443 # ('农业银行', (1, None, 3, None, None, 2, None, 4, None, None, None, None, None)),
444 # ('农业银行', (1, 2, None, None, None, None, None, None, None, None, None, None, None)),
445 # ('招商银行', (1, None, 3, 4, None, 6, None, None, None, None, None, None, None)),
446 # ('招商银行电子版', (1, None, 3, 4, None, 5, 6, None, None, None, None, None, None)),
447 # ('民生银行', (None, None, 5, 6, None, None, 7, None, 8, None, None, None, None)),
448 #
449 # ('中信银行', (1, None, None, 5, None, 2, 6, 7, 8, None, None, 3, 4)),
450 # ('农业银行', (1, None, 3, 4, None, 2, None, 5, None, None, None, None, None)),
451 # ('农业银行', (1, None, 3, 4, None, 2, None, 5, None, None, None, None, None)),
452 # ('农业银行', (1, None, 3, 4, None, 2, None, 5, None, None, None, None, None)),
453 # ('平安电子账单', (2, None, 5, 6, None, 4, None, None, None, None, None, None, None)),
454 #
455 # ('建设银行', (None, None, None, None, None, None, None, None, None, None, None, None, None)),
456 # ('邮储银行', (2, None, 5, 6, None, 4, None, 7, None, None, None, None, None)),
457 # ('邮储银行', (2, None, 5, 6, None, 4, None, 7, None, None, None, None, None)),
458 # ]
......
...@@ -38,7 +38,7 @@ class BSWorkbook(Workbook): ...@@ -38,7 +38,7 @@ class BSWorkbook(Workbook):
38 for col in range(consts.FIXED_COL_AMOUNT + 1, ws.max_column + 1): 38 for col in range(consts.FIXED_COL_AMOUNT + 1, ws.max_column + 1):
39 header_value = ws.cell(1, col).value 39 header_value = ws.cell(1, col).value
40 header_col = consts.HEADERS_MAPPING.get(header_value) 40 header_col = consts.HEADERS_MAPPING.get(header_value)
41 if header_col is not None: 41 if header_col is not None and header_col not in header_col_set:
42 letter = get_column_letter(col) 42 letter = get_column_letter(col)
43 ws.move_range("{0}1:{0}{1}".format(letter, ws.max_row), cols=header_col - col) 43 ws.move_range("{0}1:{0}{1}".format(letter, ws.max_row), cols=header_col - col)
44 moved_col_set.add(col) 44 moved_col_set.add(col)
...@@ -63,7 +63,7 @@ class BSWorkbook(Workbook): ...@@ -63,7 +63,7 @@ class BSWorkbook(Workbook):
63 for header_col in range(1, consts.FIXED_COL_AMOUNT + 1): 63 for header_col in range(1, consts.FIXED_COL_AMOUNT + 1):
64 if header_col in header_col_set or header_col == consts.RESULT_HEADER_COL: 64 if header_col in header_col_set or header_col == consts.RESULT_HEADER_COL:
65 continue 65 continue
66 fix_col = consts.CLASSIFY_LIST[classify][1][header_col - 1] # TODO 合并分类情况 66 fix_col = consts.CLASSIFY_LIST[classify][1][header_col - 1]
67 if fix_col is None: 67 if fix_col is None:
68 continue 68 continue
69 fix_col = fix_col + consts.FIXED_COL_AMOUNT 69 fix_col = fix_col + consts.FIXED_COL_AMOUNT
...@@ -250,7 +250,7 @@ class BSWorkbook(Workbook): ...@@ -250,7 +250,7 @@ class BSWorkbook(Workbook):
250 # 3.4.余额转数值 250 # 3.4.余额转数值
251 try: 251 try:
252 try: 252 try:
253 if isinstance(amount_cell.value, str): 253 if isinstance(amount_cell.value, str): # TODO 可在转化数字失败后,再替换
254 amount_cell.value = amount_cell.value.translate(consts.TRANS) 254 amount_cell.value = amount_cell.value.translate(consts.TRANS)
255 amount_cell.value = locale.atof(amount_cell.value) 255 amount_cell.value = locale.atof(amount_cell.value)
256 except Exception as e: 256 except Exception as e:
...@@ -337,8 +337,6 @@ class BSWorkbook(Workbook): ...@@ -337,8 +337,6 @@ class BSWorkbook(Workbook):
337 end_date = max(date_list) if end_date is None else end_date 337 end_date = max(date_list) if end_date is None else end_date
338 338
339 # 2.元信息提取表 339 # 2.元信息提取表
340 bank_name = consts.CLASSIFY_LIST[summary['classify']][0]
341 base_sheet_name = '{0}_{1}'.format(bank_name, summary['role'])
342 ms = self.build_meta_sheet(card, 340 ms = self.build_meta_sheet(card,
343 summary['classify'], 341 summary['classify'],
344 summary['confidence'], 342 summary['confidence'],
...@@ -354,7 +352,7 @@ class BSWorkbook(Workbook): ...@@ -354,7 +352,7 @@ class BSWorkbook(Workbook):
354 is_reverse = True 352 is_reverse = True
355 for month_list in month_mapping.values(): 353 for month_list in month_mapping.values():
356 month_list.sort(key=lambda x: x[-1], reverse=True) 354 month_list.sort(key=lambda x: x[-1], reverse=True)
357 self.build_month_sheet(base_sheet_name, month_mapping, ms, is_reverse) 355 self.build_month_sheet(card, month_mapping, ms, is_reverse)
358 356
359 # 4.删除原表 357 # 4.删除原表
360 for sheet in summary['sheet']: 358 for sheet in summary['sheet']:
......
Styling with Markdown is supported
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!