19f10814 by 周伟奇

se compare part 1

1 parent 04c50d1f
...@@ -1347,7 +1347,7 @@ ID_COMPARE_LOGIC = { ...@@ -1347,7 +1347,7 @@ ID_COMPARE_LOGIC = {
1347 'customerName': ('姓名', 'se_name_compare', {}), 1347 'customerName': ('姓名', 'se_name_compare', {}),
1348 'idNum': ('公民身份号码', 'se_common_compare', {}), 1348 'idNum': ('公民身份号码', 'se_common_compare', {}),
1349 'dateOfBirth': ('出生年月', 'se_date_compare', {'input_replace': ''}), 1349 'dateOfBirth': ('出生年月', 'se_date_compare', {'input_replace': ''}),
1350 'idExpiryDate': ('有效期限', 'se_date_compare', {'long': True, 'ocr_split': True, 'input_replace': ''}), 1350 'idExpiryDate': ('有效期限', 'se_date_compare', {'long': True, 'ocr_split': True, 'input_replace': '', 'today': True}),
1351 'hukouProvince': ('住址', 'se_contain_compare', {}), 1351 'hukouProvince': ('住址', 'se_contain_compare', {}),
1352 'hukouCity': ('住址', 'se_contain_compare', {}), 1352 'hukouCity': ('住址', 'se_contain_compare', {}),
1353 } 1353 }
...@@ -1356,21 +1356,21 @@ PP_COMPARE_LOGIC = { ...@@ -1356,21 +1356,21 @@ PP_COMPARE_LOGIC = {
1356 'customerName': ('英文姓名', 'se_name_compare', {'is_passport': True}), 1356 'customerName': ('英文姓名', 'se_name_compare', {'is_passport': True}),
1357 'idNum': ('护照号码', 'se_common_compare', {}), 1357 'idNum': ('护照号码', 'se_common_compare', {}),
1358 'dateOfBirth': ('出生日期', 'se_date_compare', {'input_replace': ''}), 1358 'dateOfBirth': ('出生日期', 'se_date_compare', {'input_replace': ''}),
1359 'idExpiryDate': ('有效期至', 'se_date_compare', {'input_replace': ''}), 1359 'idExpiryDate': ('有效期至', 'se_date_compare', {'input_replace': '', 'today': True}),
1360 } 1360 }
1361 1361
1362 EEP_COMPARE_LOGIC = { 1362 EEP_COMPARE_LOGIC = {
1363 'customerName': ('中文名', 'se_common_compare', {}), 1363 'customerName': ('中文名', 'se_common_compare', {}),
1364 'idNum': ('证件号码', 'se_common_compare', {}), 1364 'idNum': ('证件号码', 'se_common_compare', {}),
1365 'dateOfBirth': ('出生日期', 'se_date_compare', {'input_replace': '.'}), 1365 'dateOfBirth': ('出生日期', 'se_date_compare', {'input_replace': '.'}),
1366 'idExpiryDate': ('有效期限', 'se_date_compare', {'ocr_split': True, 'input_replace': '.'}), 1366 'idExpiryDate': ('有效期限', 'se_date_compare', {'ocr_split': True, 'input_replace': '.', 'today': True}),
1367 } 1367 }
1368 1368
1369 RP_COMPARE_LOGIC = { 1369 RP_COMPARE_LOGIC = {
1370 'customerName': ('姓名', 'se_name_compare', {}), 1370 'customerName': ('姓名', 'se_name_compare', {}),
1371 'idNum': ('公民身份号码', 'se_common_compare', {}), 1371 'idNum': ('公民身份号码', 'se_common_compare', {}),
1372 'dateOfBirth': ('出生年月', 'se_date_compare', {'input_replace': ''}), 1372 'dateOfBirth': ('出生年月', 'se_date_compare', {'input_replace': ''}),
1373 'idExpiryDate': ('有效期限', 'se_date_compare', {'ocr_split': True, 'input_replace': ''}), 1373 'idExpiryDate': ('有效期限', 'se_date_compare', {'ocr_split': True, 'input_replace': '', 'today': True}),
1374 'hukouProvince': ('住址', 'se_contain_compare', {}), 1374 'hukouProvince': ('住址', 'se_contain_compare', {}),
1375 'hukouCity': ('住址', 'se_contain_compare', {}), 1375 'hukouCity': ('住址', 'se_contain_compare', {}),
1376 } 1376 }
...@@ -1383,7 +1383,7 @@ BL_COMPARE_LOGIC = { ...@@ -1383,7 +1383,7 @@ BL_COMPARE_LOGIC = {
1383 'organizationCreditCode': ('注册号', 'se_common_compare', {}), 1383 'organizationCreditCode': ('注册号', 'se_common_compare', {}),
1384 'taxRegistrationCertificateNo': ('注册号', 'se_common_compare', {}), 1384 'taxRegistrationCertificateNo': ('注册号', 'se_common_compare', {}),
1385 'establishmentDate': ('成立日期', 'se_date_compare', {'ocr_replace': True}), 1385 'establishmentDate': ('成立日期', 'se_date_compare', {'ocr_replace': True}),
1386 'businessLicenseDueDate': ('营业期限', 'se_date_compare', {'ocr_split': True, 'long': True, 'ocr_replace': True}), 1386 'businessLicenseDueDate': ('营业期限', 'se_date_compare', {'ocr_split': True, 'long': True, 'ocr_replace': True, 'today': True}),
1387 'organizationType': ('企业类型', 'se_type_compare', {}), 1387 'organizationType': ('企业类型', 'se_type_compare', {}),
1388 'registeredCapital': ('注册资本', 'se_rmb_compare', {}), 1388 'registeredCapital': ('注册资本', 'se_rmb_compare', {}),
1389 } 1389 }
...@@ -1392,17 +1392,18 @@ MVI_COMPARE_LOGIC = { ...@@ -1392,17 +1392,18 @@ MVI_COMPARE_LOGIC = {
1392 'vinNo': ('车辆识别代码', 'se_common_compare', {}), 1392 'vinNo': ('车辆识别代码', 'se_common_compare', {}),
1393 'dealer': ('销方名称', 'se_common_compare', {}), 1393 'dealer': ('销方名称', 'se_common_compare', {}),
1394 'vehicleTransactionAmount': ('价税合计小写', 'se_amount_compare', {}), 1394 'vehicleTransactionAmount': ('价税合计小写', 'se_amount_compare', {}),
1395 'customerName': ('购方名称', 'se_name_compare', {}), 1395 'customerName': ('购方名称', 'se_name_compare', {'is_passport': True}),
1396 'idNum': ('购买方身份证号或组织机构代码', 'se_contain_compare_2', {}), 1396 'idNum': ('购买方身份证号或组织机构代码', 'se_contain_compare_2', {}),
1397 'dateOfInvoice': ('开票日期', 'se_date_compare_2', {}), 1397 'dateOfInvoice': ('开票日期', 'se_date_compare_2', {'three_month': True}),
1398 'stamp': ('销售单位章', 'se_common_compare', {}), 1398 'stamp': ('销售单位章', 'se_common_compare', {}),
1399 } 1399 }
1400 1400
1401 UCI_COMPARE_LOGIC = { 1401 UCI_COMPARE_LOGIC = {
1402 'vinNo': ('车架号', 'se_common_compare', {}), 1402 'vinNo': ('车架号', 'se_common_compare', {}),
1403 'vehicleTransactionAmount': ('价税合计小写', 'se_amount_compare', {}), 1403 'vehicleTransactionAmount': ('价税合计小写', 'se_amount_compare', {}),
1404 'customerName': ('购方名称', 'se_name_compare', {}), 1404 'customerName': ('购方名称', 'se_name_compare', {'is_passport': True}),
1405 'idNum': ('购方纳税人识别号', 'se_contain_compare_2', {}), 1405 'idNum': ('购方纳税人识别号', 'se_contain_compare_2', {}),
1406 'dateOfInvoice': ('开票日期', 'se_date_compare_2', {'three_month': True}),
1406 'stamp': ('发票章', 'se_common_compare', {}), 1407 'stamp': ('发票章', 'se_common_compare', {}),
1407 } 1408 }
1408 1409
......
...@@ -821,6 +821,7 @@ def get_se_compare_info(last_obj, application_entity): ...@@ -821,6 +821,7 @@ def get_se_compare_info(last_obj, application_entity):
821 gb34_field_input.append((consts.SE_GB_USED_FIELD[0], main_name)) 821 gb34_field_input.append((consts.SE_GB_USED_FIELD[0], main_name))
822 gb34_field_input.append((consts.SE_GB_USED_FIELD[1], main_num)) 822 gb34_field_input.append((consts.SE_GB_USED_FIELD[1], main_num))
823 gb34_field_input.append((consts.SE_GB_USED_FIELD[2], last_obj.first_submmison_date)) 823 gb34_field_input.append((consts.SE_GB_USED_FIELD[2], last_obj.first_submmison_date))
824 vehicle_field_input.append((consts.SE_NEW_ADD_FIELD[2], last_obj.first_submmison_date))
824 vehicle_field_input.append((consts.SE_NEW_ADD_FIELD[3], consts.SE_STAMP_VALUE)) 825 vehicle_field_input.append((consts.SE_NEW_ADD_FIELD[3], consts.SE_STAMP_VALUE))
825 vehicle_info[consts.UCI_EN] = vehicle_field_input 826 vehicle_info[consts.UCI_EN] = vehicle_field_input
826 vehicle_info[consts.MVC_EN] = gb_field_input 827 vehicle_info[consts.MVC_EN] = gb_field_input
......
1 import re 1 import re
2 import time 2 import time
3 import numpy as np
3 from datetime import datetime 4 from datetime import datetime
5 from dateutil.relativedelta import relativedelta
4 from .rmb_lower import rmb_handler 6 from .rmb_lower import rmb_handler
5 # from .rmb_upper import to_rmb_upper 7 # from .rmb_upper import to_rmb_upper
8 from pandas._libs import tslib
9 from pandas._libs.tslibs.nattype import NaTType
10 from pandas.core.indexes.datetimes import DatetimeIndex
6 11
7 12
8 class Comparison: 13 class Comparison:
...@@ -179,10 +184,27 @@ class Comparison: ...@@ -179,10 +184,27 @@ class Comparison:
179 def ca_common_compare(self, input_str, ocr_str, **kwargs): 184 def ca_common_compare(self, input_str, ocr_str, **kwargs):
180 return self.build_res(input_str == ocr_str) 185 return self.build_res(input_str == ocr_str)
181 186
187 @staticmethod
188 def is_after_today(ocr_str):
189 dt_array, _ = tslib.array_to_datetime(
190 np.array([ocr_str, ], copy=False, dtype=np.object_),
191 errors="coerce",
192 utc=False,
193 dayfirst=False,
194 yearfirst=False,
195 require_iso8601=True,
196 )
197 dti = DatetimeIndex(dt_array, tz=None, name=None)
198 ts = dti[0]
199 if isinstance(ts, NaTType) or ts.date() < datetime.today().date():
200 return False
201 else:
202 return True
203
182 def se_date_compare(self, input_str, ocr_str, **kwargs): 204 def se_date_compare(self, input_str, ocr_str, **kwargs):
183 if kwargs.get('long', False): 205 if kwargs.get('long', False):
184 if '长期' in ocr_str or '永久' in ocr_str or '***' in ocr_str or '至今' in ocr_str: 206 if '长期' in ocr_str or '永久' in ocr_str or '***' in ocr_str or '至今' in ocr_str:
185 if input_str in ['2099-12-31', '2099-01-01', '2999-12-31', '2999-01-01']: 207 if kwargs.get('today', False) or input_str in ['2099-12-31', '2099-01-01', '2999-12-31', '2999-01-01']:
186 return self.RESULT_Y 208 return self.RESULT_Y
187 else: 209 else:
188 return self.RESULT_N 210 return self.RESULT_N
...@@ -195,7 +217,10 @@ class Comparison: ...@@ -195,7 +217,10 @@ class Comparison:
195 ocr_str = ocr_str.replace('年', '-').replace('月', '-').replace('日', '') 217 ocr_str = ocr_str.replace('年', '-').replace('月', '-').replace('日', '')
196 if kwargs.get('input_replace') is not None: 218 if kwargs.get('input_replace') is not None:
197 input_str = input_str.replace('-', kwargs.get('input_replace')) 219 input_str = input_str.replace('-', kwargs.get('input_replace'))
198 return self.build_res(input_str == ocr_str) 220 if kwargs.get('today', False):
221 return self.build_res(self.is_after_today(ocr_str))
222 else:
223 return self.build_res(input_str == ocr_str)
199 224
200 def ca_date_compare(self, input_str, ocr_str, **kwargs): 225 def ca_date_compare(self, input_str, ocr_str, **kwargs):
201 if kwargs.get('long', False): 226 if kwargs.get('long', False):
...@@ -306,12 +331,17 @@ class Comparison: ...@@ -306,12 +331,17 @@ class Comparison:
306 331
307 def se_date_compare_2(self, input_str, ocr_str, **kwargs): 332 def se_date_compare_2(self, input_str, ocr_str, **kwargs):
308 try: 333 try:
309 input_date = time.strptime(input_str, "%Y-%m-%d") 334 input_date = datetime.strptime(input_str, "%Y-%m-%d").date()
310 ocr_date = time.strptime(ocr_str, "%Y-%m-%d") 335 if kwargs.get('three_month', False):
336 three_month_date = (datetime.today() - relativedelta(months=3)).date()
337 compare_date = max(input_date, three_month_date)
338 else:
339 compare_date = input_date
340 ocr_date = datetime.strptime(ocr_str, "%Y-%m-%d").date()
311 except Exception as e: 341 except Exception as e:
312 return self.RESULT_N 342 return self.RESULT_N
313 else: 343 else:
314 return self.build_res(input_date <= ocr_date) 344 return self.build_res(compare_date <= ocr_date)
315 345
316 346
317 cp = Comparison() 347 cp = Comparison()
......
Styling with Markdown is supported
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!