Merge remote-tracking branch 'origin/feature/sc'
Showing
7 changed files
with
90 additions
and
5 deletions
... | @@ -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): 3, | ||
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] | ... | ... |
src/common/tools/mssql_script26.py
0 → 100644
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() |
-
Please register or sign in to post a comment