c18d2bad by 周伟奇

add FSM ocr result

1 parent cd2068d7
...@@ -1541,6 +1541,9 @@ SE_AFC_CON_MAP = { ...@@ -1541,6 +1541,9 @@ SE_AFC_CON_MAP = {
1541 '还款账号': (2, 2, '还款账户', '账号'), 1541 '还款账号': (2, 2, '还款账户', '账号'),
1542 '户名': (2, 2, '还款账户', '户名'), 1542 '户名': (2, 2, '还款账户', '户名'),
1543 '开户行': (2, 2, '还款账户', '开户行'), 1543 '开户行': (2, 2, '还款账户', '开户行'),
1544 '收款账号': (2, 2, '借款人收款账户', '账号'),
1545 '收款户名': (2, 2, '借款人收款账户', '户名'),
1546 '收款开户行': (2, 2, '借款人收款账户', '开户行'),
1544 1547
1545 '借款人签字及时间': (1, 1, '借款人签字及时间', None), 1548 '借款人签字及时间': (1, 1, '借款人签字及时间', None),
1546 1549
...@@ -1580,9 +1583,12 @@ SE_HIL_CON_1_MAP = { ...@@ -1580,9 +1583,12 @@ SE_HIL_CON_1_MAP = {
1580 '融资成本总额': (5, 4, 7, '融资成本总额', None), 1583 '融资成本总额': (5, 4, 7, '融资成本总额', None),
1581 '租期': (5, 4, 7, '租期', None), 1584 '租期': (5, 4, 7, '租期', None),
1582 '还款计划表': (5, 5, 7, '付款计划表', None), 1585 '还款计划表': (5, 5, 7, '付款计划表', None),
1583 '还款账号': (5, 5, 7, '银行账户-银行账号', None), 1586 '还款账号': (5, 6, 7, '银行账户-银行账号', None),
1584 '户名': (5, 5, 7, '银行账户-户名', None), 1587 '户名': (5, 6, 7, '银行账户-户名', None),
1585 '开户行': (5, 5, 7, '银行账户-开户行', None), 1588 '开户行': (5, 6, 7, '银行账户-开户行', None),
1589 '收款账号': (5, 5, 7, '收款银行账户-银行账号', None),
1590 '收款户名': (5, 5, 7, '收款银行账户-户名', None),
1591 '收款开户行': (5, 5, 7, '收款银行账户-开户行', None),
1586 'ASP项目详情': (5, 4, 7, '车辆附加产品明细表', None), 1592 'ASP项目详情': (5, 4, 7, '车辆附加产品明细表', None),
1587 '承租人法定代表人或授权代表': (1, 1, 7, '承租人-法定代表人或授权代表', None), 1593 '承租人法定代表人或授权代表': (1, 1, 7, '承租人-法定代表人或授权代表', None),
1588 '共同承租人法定代表人或授权代表': (1, 1, 7, '共同承租人-法定代表人或授权代表', None), 1594 '共同承租人法定代表人或授权代表': (1, 1, 7, '共同承租人-法定代表人或授权代表', None),
...@@ -1638,6 +1644,39 @@ SE_HIL_CON_MAP = { ...@@ -1638,6 +1644,39 @@ SE_HIL_CON_MAP = {
1638 HIL_CONTRACT_3_CLASSIFY: SE_HIL_CON_3_MAP, 1644 HIL_CONTRACT_3_CLASSIFY: SE_HIL_CON_3_MAP,
1639 } 1645 }
1640 1646
1647 SE_FSM_WEP_MAP = {
1648 '客户姓名': (1, '客户姓名'),
1649 '证件类型': (1, '证件类型'),
1650 '证件号码': (1, '证件号码'),
1651 '合同价格(小写)': (1, '合同价格(小写)'),
1652 '客户签名': (1, '客户签名'),
1653 '签单日期': (1, '签单日期'),
1654 }
1655
1656 SE_FSM_MSI_MAP = {
1657 '客户姓名': (1, '客户姓名'),
1658 '证件类型': (1, '证件类型'),
1659 '证件号码': (1, '证件号码'),
1660 '合同价格(小写)': (1, '合同价格(小写)'),
1661 '客户签名': (2, '客户签名'),
1662 '签单日期': (2, '签单日期'),
1663 }
1664
1665 SE_FSM_SC_MAP = {
1666 '姓名': (1, '姓名'),
1667 '证件类型': (1, '证件类型'),
1668 '证件号码': (1, '证件号码'),
1669 '总价': (1, '总价'),
1670 '客户签名': (12, '客户签名'),
1671 '签单日期': (12, '签单日期'),
1672 }
1673
1674 SE_FSM_CON_MAP = {
1675 FSM_CONTRACT_WEP_CLASSIFY: SE_FSM_WEP_MAP,
1676 FSM_CONTRACT_MSI_CLASSIFY: SE_FSM_MSI_MAP,
1677 FSM_CONTRACT_SC_CLASSIFY: SE_FSM_SC_MAP,
1678 }
1679
1641 SE_AFC_CON_QRS_FIELD = ['合同编号'] 1680 SE_AFC_CON_QRS_FIELD = ['合同编号']
1642 SE_AFC_CON_FIELD = ['合同编号-每页', '所购车辆价格-小写-重要条款', '车架号-重要条款', '贷款本金金额-重要条款', '贷款期限-重要条款', 1681 SE_AFC_CON_FIELD = ['合同编号-每页', '所购车辆价格-小写-重要条款', '车架号-重要条款', '贷款本金金额-重要条款', '贷款期限-重要条款',
1643 '车辆贷款本金金额-重要条款', '附加产品融资贷款本金总额-重要条款', '所购车辆价格', '车架号', '经销商', 1682 '车辆贷款本金金额-重要条款', '附加产品融资贷款本金总额-重要条款', '所购车辆价格', '车架号', '经销商',
......
...@@ -998,7 +998,7 @@ class Command(BaseCommand, LoggerMixin): ...@@ -998,7 +998,7 @@ class Command(BaseCommand, LoggerMixin):
998 res.setdefault(consts.ALL_POSITION_KEY, dict())[key] = page_info_dict.get(str(pno), {}).get( 998 res.setdefault(consts.ALL_POSITION_KEY, dict())[key] = page_info_dict.get(str(pno), {}).get(
999 consts.ALL_POSITION_KEY, {}).get(key1, []) 999 consts.ALL_POSITION_KEY, {}).get(key1, [])
1000 license_summary[classify] = [res] 1000 license_summary[classify] = [res]
1001 elif classify in consts.SE_HIL_CON_MAP: # TODO FSM新合同写入数据库用于比对 1001 elif classify in consts.SE_HIL_CON_MAP:
1002 res = {} 1002 res = {}
1003 for key, (pno1, pno2, end_idx, key1, key2) in consts.SE_HIL_CON_MAP[classify].items(): 1003 for key, (pno1, pno2, end_idx, key1, key2) in consts.SE_HIL_CON_MAP[classify].items():
1004 if pno1 is None: 1004 if pno1 is None:
...@@ -1022,7 +1022,14 @@ class Command(BaseCommand, LoggerMixin): ...@@ -1022,7 +1022,14 @@ class Command(BaseCommand, LoggerMixin):
1022 res[key] = tmp_res 1022 res[key] = tmp_res
1023 res.setdefault(consts.IMG_PATH_KEY, dict())[key] = page_info_dict.get(str(img_pno), {}).get( 1023 res.setdefault(consts.IMG_PATH_KEY, dict())[key] = page_info_dict.get(str(img_pno), {}).get(
1024 consts.IMG_PATH_KEY, '') 1024 consts.IMG_PATH_KEY, '')
1025 license_summary[classify] = [res]
1025 1026
1027 elif classify in consts.SE_FSM_CON_MAP:
1028 res = {}
1029 for key, (pno1, key1) in consts.SE_FSM_CON_MAP[classify].items():
1030 res[key] = page_info_dict.get(str(pno1), {}).get(key1)
1031 res.setdefault(consts.IMG_PATH_KEY, dict())[key] = page_info_dict.get(str(img_pno), {}).get(
1032 consts.IMG_PATH_KEY, '')
1026 license_summary[classify] = [res] 1033 license_summary[classify] = [res]
1027 1034
1028 def rebuild_bs_summary(self, bs_summary, unknown_summary): 1035 def rebuild_bs_summary(self, bs_summary, unknown_summary):
......
...@@ -329,6 +329,9 @@ class AFCOCRResult(models.Model): ...@@ -329,6 +329,9 @@ class AFCOCRResult(models.Model):
329 hil_contract_2_ocr = models.TextField(null=True, verbose_name="HIL合同2") 329 hil_contract_2_ocr = models.TextField(null=True, verbose_name="HIL合同2")
330 hil_contract_3_ocr = models.TextField(null=True, verbose_name="HIL合同3") 330 hil_contract_3_ocr = models.TextField(null=True, verbose_name="HIL合同3")
331 qrs_ocr = models.TextField(null=True, verbose_name="AFC合同确认书") 331 qrs_ocr = models.TextField(null=True, verbose_name="AFC合同确认书")
332 fsm_wep_ocr = models.TextField(null=True, verbose_name="FSM-WEP")
333 fsm_msi_ocr = models.TextField(null=True, verbose_name="FSM-MSI")
334 fsm_sc_ocr = models.TextField(null=True, verbose_name="FSM-SC")
332 335
333 update_time = models.DateTimeField(auto_now=True, verbose_name='修改时间') 336 update_time = models.DateTimeField(auto_now=True, verbose_name='修改时间')
334 create_time = models.DateTimeField(auto_now_add=True, verbose_name='创建时间') 337 create_time = models.DateTimeField(auto_now_add=True, verbose_name='创建时间')
...@@ -365,6 +368,9 @@ class HILOCRResult(models.Model): ...@@ -365,6 +368,9 @@ class HILOCRResult(models.Model):
365 hil_contract_2_ocr = models.TextField(null=True, verbose_name="HIL合同2") 368 hil_contract_2_ocr = models.TextField(null=True, verbose_name="HIL合同2")
366 hil_contract_3_ocr = models.TextField(null=True, verbose_name="HIL合同3") 369 hil_contract_3_ocr = models.TextField(null=True, verbose_name="HIL合同3")
367 qrs_ocr = models.TextField(null=True, verbose_name="AFC合同确认书") 370 qrs_ocr = models.TextField(null=True, verbose_name="AFC合同确认书")
371 fsm_wep_ocr = models.TextField(null=True, verbose_name="FSM-WEP")
372 fsm_msi_ocr = models.TextField(null=True, verbose_name="FSM-MSI")
373 fsm_sc_ocr = models.TextField(null=True, verbose_name="FSM-SC")
368 374
369 update_time = models.DateTimeField(auto_now=True, verbose_name='修改时间') 375 update_time = models.DateTimeField(auto_now=True, verbose_name='修改时间')
370 create_time = models.DateTimeField(auto_now_add=True, verbose_name='创建时间') 376 create_time = models.DateTimeField(auto_now_add=True, verbose_name='创建时间')
...@@ -400,6 +406,9 @@ class AFCSEOCRResult(models.Model): ...@@ -400,6 +406,9 @@ class AFCSEOCRResult(models.Model):
400 hil_contract_2_ocr = models.TextField(null=True, verbose_name="HIL合同2") 406 hil_contract_2_ocr = models.TextField(null=True, verbose_name="HIL合同2")
401 hil_contract_3_ocr = models.TextField(null=True, verbose_name="HIL合同3") 407 hil_contract_3_ocr = models.TextField(null=True, verbose_name="HIL合同3")
402 qrs_ocr = models.TextField(null=True, verbose_name="AFC合同确认书") 408 qrs_ocr = models.TextField(null=True, verbose_name="AFC合同确认书")
409 fsm_wep_ocr = models.TextField(null=True, verbose_name="FSM-WEP")
410 fsm_msi_ocr = models.TextField(null=True, verbose_name="FSM-MSI")
411 fsm_sc_ocr = models.TextField(null=True, verbose_name="FSM-SC")
403 412
404 update_time = models.DateTimeField(auto_now=True, verbose_name='修改时间') 413 update_time = models.DateTimeField(auto_now=True, verbose_name='修改时间')
405 create_time = models.DateTimeField(auto_now_add=True, verbose_name='创建时间') 414 create_time = models.DateTimeField(auto_now_add=True, verbose_name='创建时间')
...@@ -436,6 +445,9 @@ class HILSEOCRResult(models.Model): ...@@ -436,6 +445,9 @@ class HILSEOCRResult(models.Model):
436 hil_contract_2_ocr = models.TextField(null=True, verbose_name="HIL合同2") 445 hil_contract_2_ocr = models.TextField(null=True, verbose_name="HIL合同2")
437 hil_contract_3_ocr = models.TextField(null=True, verbose_name="HIL合同3") 446 hil_contract_3_ocr = models.TextField(null=True, verbose_name="HIL合同3")
438 qrs_ocr = models.TextField(null=True, verbose_name="AFC合同确认书") 447 qrs_ocr = models.TextField(null=True, verbose_name="AFC合同确认书")
448 fsm_wep_ocr = models.TextField(null=True, verbose_name="FSM-WEP")
449 fsm_msi_ocr = models.TextField(null=True, verbose_name="FSM-MSI")
450 fsm_sc_ocr = models.TextField(null=True, verbose_name="FSM-SC")
439 451
440 update_time = models.DateTimeField(auto_now=True, verbose_name='修改时间') 452 update_time = models.DateTimeField(auto_now=True, verbose_name='修改时间')
441 create_time = models.DateTimeField(auto_now_add=True, verbose_name='创建时间') 453 create_time = models.DateTimeField(auto_now_add=True, verbose_name='创建时间')
......
...@@ -56,12 +56,12 @@ class Finder: ...@@ -56,12 +56,12 @@ class Finder:
56 "融资成本总额": self.item, 56 "融资成本总额": self.item,
57 "租期": self.item, 57 "租期": self.item,
58 "付款计划表": self.item, 58 "付款计划表": self.item,
59 "承租人收款账户-户名": self.item, 59 "收款银行账户-户名": self.item,
60 "承租人收款账户-银行账号": self.item, 60 "收款银行账户-银行账号": self.item,
61 "承租人收款账户-开户行": self.item, 61 "收款银行账户-开户行": self.item,
62 "承租人扣款账户-户名": self.item, 62 "银行账户-户名": self.item,
63 "承租人扣款账户-银行账号": self.item, 63 "银行账户-银行账号": self.item,
64 "承租人扣款账户-开户行": self.item, 64 "银行账户-开户行": self.item,
65 "签字页-承租人姓名": self.item, 65 "签字页-承租人姓名": self.item,
66 "签字页-承租人签章": self.item, 66 "签字页-承租人签章": self.item,
67 67
...@@ -1260,18 +1260,18 @@ class Finder: ...@@ -1260,18 +1260,18 @@ class Finder:
1260 self.init_result['付款计划表'] = repayment_schedule 1260 self.init_result['付款计划表'] = repayment_schedule
1261 # 找承租人收款账户户名、银行账号、银行 1261 # 找承租人收款账户户名、银行账号、银行
1262 name = self.get_key_value(key='户名:', page_num='4') 1262 name = self.get_key_value(key='户名:', page_num='4')
1263 self.init_result['承租人收款账户-户名'] = name 1263 self.init_result['收款银行账户-户名'] = name
1264 account = self.get_key_value(key='银行账号:', page_num='4') 1264 account = self.get_key_value(key='银行账号:', page_num='4')
1265 self.init_result['承租人收款账户-银行账号'] = account 1265 self.init_result['收款银行账户-银行账号'] = account
1266 bank = self.get_key_value(key='开户银行:', page_num='4') 1266 bank = self.get_key_value(key='开户银行:', page_num='4')
1267 self.init_result['承租人收款账户-开户行'] = bank 1267 self.init_result['承租人收款账户-开户行'] = bank
1268 # 找承租人扣款账户户名、银行账号、银行 1268 # 找承租人扣款账户户名、银行账号、银行
1269 name = self.get_key_value(key='户名:', page_num='5') 1269 name = self.get_key_value(key='户名:', page_num='5')
1270 self.init_result['承租人扣款账户-户名'] = name 1270 self.init_result['银行账户-户名'] = name
1271 account = self.get_key_value(key='银行账号:', page_num='5') 1271 account = self.get_key_value(key='银行账号:', page_num='5')
1272 self.init_result['承租人扣款账户-银行账号'] = account 1272 self.init_result['银行账户-银行账号'] = account
1273 bank = self.get_key_value(key='开户银行:', page_num='5') 1273 bank = self.get_key_value(key='开户银行:', page_num='5')
1274 self.init_result['承租人扣款账户-开户行'] = bank 1274 self.init_result['银行账户-开户行'] = bank
1275 1275
1276 # 找签字页上的系列信息 1276 # 找签字页上的系列信息
1277 # 承租人姓名、签章 1277 # 承租人姓名、签章
......
1 import pyodbc
2
3 hil_sql = """
4 ALTER TABLE hil_ocr_result ADD fsm_wep_ocr nvarchar(max);
5 ALTER TABLE hil_ocr_result ADD fsm_msi_ocr nvarchar(max);
6 ALTER TABLE hil_ocr_result ADD fsm_sc_ocr nvarchar(max);
7 ALTER TABLE hil_se_ocr_result ADD fsm_wep_ocr nvarchar(max);
8 ALTER TABLE hil_se_ocr_result ADD fsm_msi_ocr nvarchar(max);
9 ALTER TABLE hil_se_ocr_result ADD fsm_sc_ocr nvarchar(max);
10 """
11
12 afc_sql = """
13 ALTER TABLE afc_ocr_result ADD fsm_wep_ocr nvarchar(max);
14 ALTER TABLE afc_ocr_result ADD fsm_msi_ocr nvarchar(max);
15 ALTER TABLE afc_ocr_result ADD fsm_sc_ocr nvarchar(max);
16 ALTER TABLE afc_se_ocr_result ADD fsm_wep_ocr nvarchar(max);
17 ALTER TABLE afc_se_ocr_result ADD fsm_msi_ocr nvarchar(max);
18 ALTER TABLE afc_se_ocr_result ADD fsm_sc_ocr nvarchar(max);
19 """
20
21 hil_cnxn = pyodbc.connect('DRIVER={ODBC Driver 17 for SQL Server};', autocommit=True)
22
23 hil_cursor = hil_cnxn.cursor()
24 hil_cursor.execute(hil_sql)
25
26 hil_cursor.close()
27 hil_cnxn.close()
28
29 afc_cnxn = pyodbc.connect('DRIVER={ODBC Driver 17 for SQL Server};', autocommit=True)
30
31 afc_cursor = afc_cnxn.cursor()
32 afc_cursor.execute(afc_sql)
33
34 afc_cursor.close()
35 afc_cnxn.close()
Styling with Markdown is supported
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!