dff9ba79 by 周伟奇

Merge branch 'feature/sc' into feature/uat-tmp

2 parents 5c841b8b d8cc323a
...@@ -1066,6 +1066,9 @@ FSM_CONTRACT_MSI_CLASSIFY = 52 ...@@ -1066,6 +1066,9 @@ FSM_CONTRACT_MSI_CLASSIFY = 52
1066 FSM_CONTRACT_SC_CN_NAME = '汽车销售合同' 1066 FSM_CONTRACT_SC_CN_NAME = '汽车销售合同'
1067 FSM_CONTRACT_SC_CLASSIFY = 53 1067 FSM_CONTRACT_SC_CLASSIFY = 53
1068 1068
1069 FSM_CONTRACT_SC2_CN_NAME = '汽车销售补充合同'
1070 FSM_CONTRACT_SC2_CLASSIFY = 54
1071
1069 CONTRACT_SET = { 1072 CONTRACT_SET = {
1070 CONTRACT_QRS_CLASSIFY, 1073 CONTRACT_QRS_CLASSIFY,
1071 CONTRACT_CLASSIFY, 1074 CONTRACT_CLASSIFY,
...@@ -1075,6 +1078,7 @@ CONTRACT_SET = { ...@@ -1075,6 +1078,7 @@ CONTRACT_SET = {
1075 FSM_CONTRACT_WEP_CLASSIFY, 1078 FSM_CONTRACT_WEP_CLASSIFY,
1076 FSM_CONTRACT_MSI_CLASSIFY, 1079 FSM_CONTRACT_MSI_CLASSIFY,
1077 FSM_CONTRACT_SC_CLASSIFY, 1080 FSM_CONTRACT_SC_CLASSIFY,
1081 FSM_CONTRACT_SC2_CLASSIFY,
1078 } 1082 }
1079 1083
1080 CONTRACT_MAP = { 1084 CONTRACT_MAP = {
...@@ -1086,9 +1090,10 @@ CONTRACT_MAP = { ...@@ -1086,9 +1090,10 @@ CONTRACT_MAP = {
1086 FSM_CONTRACT_WEP_CLASSIFY: FSM_CONTRACT_WEP_CN_NAME, 1090 FSM_CONTRACT_WEP_CLASSIFY: FSM_CONTRACT_WEP_CN_NAME,
1087 FSM_CONTRACT_MSI_CLASSIFY: FSM_CONTRACT_MSI_CN_NAME, 1091 FSM_CONTRACT_MSI_CLASSIFY: FSM_CONTRACT_MSI_CN_NAME,
1088 FSM_CONTRACT_SC_CLASSIFY: FSM_CONTRACT_SC_CN_NAME, 1092 FSM_CONTRACT_SC_CLASSIFY: FSM_CONTRACT_SC_CN_NAME,
1093 FSM_CONTRACT_SC2_CLASSIFY: FSM_CONTRACT_SC2_CN_NAME,
1089 } 1094 }
1090 1095
1091 FSM_CONTRACT_CLASSIFY_SET = {FSM_CONTRACT_WEP_CLASSIFY, FSM_CONTRACT_MSI_CLASSIFY, FSM_CONTRACT_SC_CLASSIFY} 1096 FSM_CONTRACT_CLASSIFY_SET = {FSM_CONTRACT_WEP_CLASSIFY, FSM_CONTRACT_MSI_CLASSIFY, FSM_CONTRACT_SC_CLASSIFY, FSM_CONTRACT_SC2_CLASSIFY}
1092 1097
1093 # 保单 1098 # 保单
1094 INSURANCE_CN_NAME = '保单' 1099 INSURANCE_CN_NAME = '保单'
...@@ -1241,6 +1246,7 @@ HIL_CONTRACT_3_FIELD = 'hil_contract_3_ocr' ...@@ -1241,6 +1246,7 @@ HIL_CONTRACT_3_FIELD = 'hil_contract_3_ocr'
1241 FSM_CONTRACT_WEP_FIELD = 'fsm_wep_ocr' 1246 FSM_CONTRACT_WEP_FIELD = 'fsm_wep_ocr'
1242 FSM_CONTRACT_MSI_FIELD = 'fsm_msi_ocr' 1247 FSM_CONTRACT_MSI_FIELD = 'fsm_msi_ocr'
1243 FSM_CONTRACT_SC_FIELD = 'fsm_sc_ocr' 1248 FSM_CONTRACT_SC_FIELD = 'fsm_sc_ocr'
1249 FSM_CONTRACT_SC2_FIELD = 'fsm_sc2_ocr'
1244 1250
1245 1251
1246 BS_CLASSIFY = 10089 1252 BS_CLASSIFY = 10089
...@@ -1270,6 +1276,7 @@ RESULT_MAPPING = { ...@@ -1270,6 +1276,7 @@ RESULT_MAPPING = {
1270 FSM_CONTRACT_WEP_CLASSIFY: FSM_CONTRACT_WEP_FIELD, 1276 FSM_CONTRACT_WEP_CLASSIFY: FSM_CONTRACT_WEP_FIELD,
1271 FSM_CONTRACT_MSI_CLASSIFY: FSM_CONTRACT_MSI_FIELD, 1277 FSM_CONTRACT_MSI_CLASSIFY: FSM_CONTRACT_MSI_FIELD,
1272 FSM_CONTRACT_SC_CLASSIFY: FSM_CONTRACT_SC_FIELD, 1278 FSM_CONTRACT_SC_CLASSIFY: FSM_CONTRACT_SC_FIELD,
1279 FSM_CONTRACT_SC2_CLASSIFY: FSM_CONTRACT_SC2_FIELD,
1273 } 1280 }
1274 1281
1275 CA_ADD_COMPARE_FIELDS = (IC_OCR_FIELD, BL_OCR_FIELD, BS_FIELD) 1282 CA_ADD_COMPARE_FIELDS = (IC_OCR_FIELD, BL_OCR_FIELD, BS_FIELD)
...@@ -1677,10 +1684,20 @@ SE_FSM_SC_MAP = { ...@@ -1677,10 +1684,20 @@ SE_FSM_SC_MAP = {
1677 '签单日期': (12, '签单日期'), 1684 '签单日期': (12, '签单日期'),
1678 } 1685 }
1679 1686
1687 SE_FSM_SC2_MAP = {
1688 '姓名': (1, '姓名'),
1689 '证件类型': (1, '证件类型'),
1690 '证件号码': (1, '证件号码'),
1691 '总价': (2, '总价'),
1692 '客户签名': (4, '客户签名'),
1693 '签单日期': (4, '签单日期'),
1694 }
1695
1680 SE_FSM_CON_MAP = { 1696 SE_FSM_CON_MAP = {
1681 FSM_CONTRACT_WEP_CLASSIFY: SE_FSM_WEP_MAP, 1697 FSM_CONTRACT_WEP_CLASSIFY: SE_FSM_WEP_MAP,
1682 FSM_CONTRACT_MSI_CLASSIFY: SE_FSM_MSI_MAP, 1698 FSM_CONTRACT_MSI_CLASSIFY: SE_FSM_MSI_MAP,
1683 FSM_CONTRACT_SC_CLASSIFY: SE_FSM_SC_MAP, 1699 FSM_CONTRACT_SC_CLASSIFY: SE_FSM_SC_MAP,
1700 FSM_CONTRACT_SC2_CLASSIFY: SE_FSM_SC2_MAP,
1684 } 1701 }
1685 1702
1686 SE_AFC_CON_QRS_FIELD = ['合同编号'] 1703 SE_AFC_CON_QRS_FIELD = ['合同编号']
...@@ -2419,11 +2436,13 @@ FSM_ECONTRACT_KEYWORDS_MAP = { ...@@ -2419,11 +2436,13 @@ FSM_ECONTRACT_KEYWORDS_MAP = {
2419 AFC_PREFIX: [ 2436 AFC_PREFIX: [
2420 ('延长保修条款与条件', FSM_CONTRACT_WEP_CLASSIFY), 2437 ('延长保修条款与条件', FSM_CONTRACT_WEP_CLASSIFY),
2421 ('长悦保养套餐服务合约', FSM_CONTRACT_MSI_CLASSIFY), 2438 ('长悦保养套餐服务合约', FSM_CONTRACT_MSI_CLASSIFY),
2439 ('汽车销售合同补充合同', FSM_CONTRACT_SC2_CLASSIFY),
2422 ('汽车销售合同', FSM_CONTRACT_SC_CLASSIFY), 2440 ('汽车销售合同', FSM_CONTRACT_SC_CLASSIFY),
2423 ], 2441 ],
2424 HIL_PREFIX: [ 2442 HIL_PREFIX: [
2425 ('延长保修条款与条件', FSM_CONTRACT_WEP_CLASSIFY), 2443 ('延长保修条款与条件', FSM_CONTRACT_WEP_CLASSIFY),
2426 ('长悦保养套餐服务合同', FSM_CONTRACT_MSI_CLASSIFY), 2444 ('长悦保养套餐服务合同', FSM_CONTRACT_MSI_CLASSIFY),
2445 ('汽车销售合同补充合同', FSM_CONTRACT_SC2_CLASSIFY),
2427 ('汽车销售合同', FSM_CONTRACT_SC_CLASSIFY), 2446 ('汽车销售合同', FSM_CONTRACT_SC_CLASSIFY),
2428 ] 2447 ]
2429 } 2448 }
...@@ -2438,6 +2457,7 @@ FSM_CONTRACT_TYPE_MAP = { ...@@ -2438,6 +2457,7 @@ FSM_CONTRACT_TYPE_MAP = {
2438 str(FSM_CONTRACT_WEP_CLASSIFY): 0, 2457 str(FSM_CONTRACT_WEP_CLASSIFY): 0,
2439 str(FSM_CONTRACT_MSI_CLASSIFY): 1, 2458 str(FSM_CONTRACT_MSI_CLASSIFY): 1,
2440 str(FSM_CONTRACT_SC_CLASSIFY): 2, 2459 str(FSM_CONTRACT_SC_CLASSIFY): 2,
2460 str(FSM_CONTRACT_SC2_CLASSIFY): 2,
2441 } 2461 }
2442 2462
2443 RESULT_MAP = { 2463 RESULT_MAP = {
......
...@@ -1531,7 +1531,7 @@ class Command(BaseCommand, LoggerMixin): ...@@ -1531,7 +1531,7 @@ class Command(BaseCommand, LoggerMixin):
1531 'page_num': page_num, 1531 'page_num': page_num,
1532 'page_info': page_info 1532 'page_info': page_info
1533 } 1533 }
1534 # FSM合同 WEP MSI SC 1534 # FSM合同 WEP MSI SC SC2
1535 elif classify_1_str in consts.FSM_CONTRACT_TYPE_MAP: 1535 elif classify_1_str in consts.FSM_CONTRACT_TYPE_MAP:
1536 file_type = consts.FSM_CONTRACT_TYPE_MAP.get(classify_1_str) 1536 file_type = consts.FSM_CONTRACT_TYPE_MAP.get(classify_1_str)
1537 ocr_result = fsm_predict(pdf_handler.pdf_info, file_type) 1537 ocr_result = fsm_predict(pdf_handler.pdf_info, file_type)
......
...@@ -332,6 +332,7 @@ class AFCOCRResult(models.Model): ...@@ -332,6 +332,7 @@ class AFCOCRResult(models.Model):
332 fsm_wep_ocr = models.TextField(null=True, verbose_name="延长保修合同") 332 fsm_wep_ocr = models.TextField(null=True, verbose_name="延长保修合同")
333 fsm_msi_ocr = models.TextField(null=True, verbose_name="长悦保养合同") 333 fsm_msi_ocr = models.TextField(null=True, verbose_name="长悦保养合同")
334 fsm_sc_ocr = models.TextField(null=True, verbose_name="汽车销售合同") 334 fsm_sc_ocr = models.TextField(null=True, verbose_name="汽车销售合同")
335 fsm_sc2_ocr = models.TextField(null=True, verbose_name="汽车销售合同补充合同")
335 fsm_activited = models.IntegerField(null=False, default=0, verbose_name="fsm激活状态 1:激活") 336 fsm_activited = models.IntegerField(null=False, default=0, verbose_name="fsm激活状态 1:激活")
336 337
337 338
...@@ -374,6 +375,7 @@ class HILOCRResult(models.Model): ...@@ -374,6 +375,7 @@ class HILOCRResult(models.Model):
374 fsm_wep_ocr = models.TextField(null=True, verbose_name="延长保修合同") 375 fsm_wep_ocr = models.TextField(null=True, verbose_name="延长保修合同")
375 fsm_msi_ocr = models.TextField(null=True, verbose_name="长悦保养合同") 376 fsm_msi_ocr = models.TextField(null=True, verbose_name="长悦保养合同")
376 fsm_sc_ocr = models.TextField(null=True, verbose_name="汽车销售合同") 377 fsm_sc_ocr = models.TextField(null=True, verbose_name="汽车销售合同")
378 fsm_sc2_ocr = models.TextField(null=True, verbose_name="汽车销售合同补充合同")
377 fsm_activited = models.IntegerField(null=False, default=0, verbose_name="fsm激活状态 1:激活") 379 fsm_activited = models.IntegerField(null=False, default=0, verbose_name="fsm激活状态 1:激活")
378 380
379 update_time = models.DateTimeField(auto_now=True, verbose_name='修改时间') 381 update_time = models.DateTimeField(auto_now=True, verbose_name='修改时间')
...@@ -414,6 +416,7 @@ class AFCSEOCRResult(models.Model): ...@@ -414,6 +416,7 @@ class AFCSEOCRResult(models.Model):
414 fsm_wep_ocr = models.TextField(null=True, verbose_name="延长保修合同") 416 fsm_wep_ocr = models.TextField(null=True, verbose_name="延长保修合同")
415 fsm_msi_ocr = models.TextField(null=True, verbose_name="长悦保养合同") 417 fsm_msi_ocr = models.TextField(null=True, verbose_name="长悦保养合同")
416 fsm_sc_ocr = models.TextField(null=True, verbose_name="汽车销售合同") 418 fsm_sc_ocr = models.TextField(null=True, verbose_name="汽车销售合同")
419 fsm_sc2_ocr = models.TextField(null=True, verbose_name="汽车销售合同补充合同")
417 fsm_activited = models.IntegerField(null=False, default=0, verbose_name="fsm激活状态 1:激活") 420 fsm_activited = models.IntegerField(null=False, default=0, verbose_name="fsm激活状态 1:激活")
418 421
419 update_time = models.DateTimeField(auto_now=True, verbose_name='修改时间') 422 update_time = models.DateTimeField(auto_now=True, verbose_name='修改时间')
...@@ -454,6 +457,7 @@ class HILSEOCRResult(models.Model): ...@@ -454,6 +457,7 @@ class HILSEOCRResult(models.Model):
454 fsm_wep_ocr = models.TextField(null=True, verbose_name="延长保修合同") 457 fsm_wep_ocr = models.TextField(null=True, verbose_name="延长保修合同")
455 fsm_msi_ocr = models.TextField(null=True, verbose_name="长悦保养合同") 458 fsm_msi_ocr = models.TextField(null=True, verbose_name="长悦保养合同")
456 fsm_sc_ocr = models.TextField(null=True, verbose_name="汽车销售合同") 459 fsm_sc_ocr = models.TextField(null=True, verbose_name="汽车销售合同")
460 fsm_sc2_ocr = models.TextField(null=True, verbose_name="汽车销售合同补充合同")
457 fsm_activited = models.IntegerField(null=False, default=0, verbose_name="fsm激活状态 1:激活") 461 fsm_activited = models.IntegerField(null=False, default=0, verbose_name="fsm激活状态 1:激活")
458 462
459 update_time = models.DateTimeField(auto_now=True, verbose_name='修改时间') 463 update_time = models.DateTimeField(auto_now=True, verbose_name='修改时间')
......
...@@ -655,7 +655,7 @@ class UploadDocView(GenericView, DocHandler): ...@@ -655,7 +655,7 @@ class UploadDocView(GenericView, DocHandler):
655 if keyword in document_name: 655 if keyword in document_name:
656 classify_1 = classify_1_tmp 656 classify_1 = classify_1_tmp
657 break 657 break
658 # FSM合同:WEP/MSI/SC 658 # FSM合同:WEP/MSI/SC/SC2
659 elif data_source == consts.DATA_SOURCE_LIST[0] and document_scheme == consts.DOC_SCHEME_LIST[0]: 659 elif data_source == consts.DATA_SOURCE_LIST[0] and document_scheme == consts.DOC_SCHEME_LIST[0]:
660 for keyword, classify_1_tmp in consts.FSM_ECONTRACT_KEYWORDS_MAP.get(prefix): 660 for keyword, classify_1_tmp in consts.FSM_ECONTRACT_KEYWORDS_MAP.get(prefix):
661 if keyword in document_name: 661 if keyword in document_name:
......
...@@ -73,3 +73,37 @@ SC_FIELD = { ...@@ -73,3 +73,37 @@ SC_FIELD = {
73 }, 73 },
74 } 74 }
75 } 75 }
76
77 # 汽车销售合同的补充协议
78 SC2_FIELD = {
79 "0": {
80 'keys': {
81 '姓名': [('姓名', (r'^姓名.?$', r'^企业名称.?$'), 'top1', {})],
82 '证件类型': [('证件类型', (r'^证件类型.?$', ), 'top1', {})],
83 '证件号码': [('证件号码', (r'^证件号码.?$', r'^统一社会信用代码.?$'), 'top1', {})],
84 },
85 'value': {
86 '姓名': ('text', 'right', {'offset_tuple': (-2, 8, 0.5, 0)}, ''),
87 '证件类型': ('text', 'right', {'offset_tuple': (-2, 6, 0.5, 0)}, ''),
88 '证件号码': ('text', 'right', {'offset_tuple': (-2, 6, 0.5, 0)}, ''),
89 },
90 },
91 "1": {
92 'keys': {
93 '总价': [('总价', (r'^调整后.?$', ), 'top1', {})],
94 },
95 'value': {
96 '总价': ('text', 'under', {'offset_tuple': (1, 1, -1, 2)}, ''),
97 },
98 },
99 "3": {
100 'keys': {
101 '客户签名': [('客户签名/盖章', (r'^客户签名/盖章.*$', r'^客户签名/盖章.*$'), 'top1', {})],
102 '签单日期': [('签单日期', (r'^签单日期.*签单日期.?$', ), 'top1', {})],
103 },
104 'value': {
105 '客户签名': ('img', 'under', {'offset_tuple': (1.5, 1, 0, 4), 'rigorous': True}, '无'),
106 '签单日期': ('img', 'right', {'offset_tuple': (0, 0, 1.1, 0), 'rigorous': True}, '无'),
107 },
108 }
109 }
......
1 from .retriever import Retriever 1 from .retriever import Retriever
2 from .const import WEP_FIELD, MSI_FIELD, SC_FIELD 2 from .const import WEP_FIELD, MSI_FIELD, SC_FIELD, SC2_FIELD
3 from .tools import pdf_info_rebuild 3 from .tools import pdf_info_rebuild
4 4
5 retriever_list = [Retriever(WEP_FIELD), Retriever(MSI_FIELD), Retriever(SC_FIELD)] 5 retriever_list = [Retriever(WEP_FIELD), Retriever(MSI_FIELD), Retriever(SC_FIELD), Retriever(SC2_FIELD)]
6 6
7 def predict(pdf_info, file_type=0): 7 def predict(pdf_info, file_type=0):
8 retriever = retriever_list[file_type] 8 retriever = retriever_list[file_type]
......
1 import pyodbc
2
3 hil_sql = """
4 ALTER TABLE hil_ocr_result ADD fsm_sc2_ocr nvarchar(max);
5 ALTER TABLE hil_se_ocr_result ADD fsm_sc2_ocr nvarchar(max);
6 """
7
8 afc_sql = """
9 ALTER TABLE afc_ocr_result ADD fsm_sc2_ocr nvarchar(max);
10 ALTER TABLE afc_se_ocr_result ADD fsm_sc2_ocr nvarchar(max);
11 """
12
13 hil_cnxn = pyodbc.connect('DRIVER={ODBC Driver 17 for SQL Server};', autocommit=True)
14
15 hil_cursor = hil_cnxn.cursor()
16 hil_cursor.execute(hil_sql)
17
18 hil_cursor.close()
19 hil_cnxn.close()
20
21 afc_cnxn = pyodbc.connect('DRIVER={ODBC Driver 17 for SQL Server};', autocommit=True)
22
23 afc_cursor = afc_cnxn.cursor()
24 afc_cursor.execute(afc_sql)
25
26 afc_cursor.close()
27 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!