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