Merge branch 'feature/pres-3034' into feature/uat-tmp
Showing
3 changed files
with
108 additions
and
61 deletions
... | @@ -6,6 +6,7 @@ from .models import HILDoc, AFCDoc, AFCSEOCRResult, AFCOCRResult, HILSEOCRResult | ... | @@ -6,6 +6,7 @@ from .models import HILDoc, AFCDoc, AFCSEOCRResult, AFCOCRResult, HILSEOCRResult |
6 | from . import consts | 6 | from . import consts |
7 | from prese.compare import pre_compare, get_empty_result | 7 | from prese.compare import pre_compare, get_empty_result |
8 | from common.mixins import LoggerMixin | 8 | from common.mixins import LoggerMixin |
9 | from settings import conf | ||
9 | 10 | ||
10 | 11 | ||
11 | class MPOSHandler: | 12 | class MPOSHandler: |
... | @@ -179,11 +180,18 @@ class PosHandler: | ... | @@ -179,11 +180,18 @@ class PosHandler: |
179 | 180 | ||
180 | @staticmethod | 181 | @staticmethod |
181 | def de_mortgage_ocr_process(img_base64): | 182 | def de_mortgage_ocr_process(img_base64): |
182 | result_obj = {} | 183 | result_obj = { |
183 | url = 'http://file-classification.situdata.com/bs/all' | 184 | 'customerName': '', |
184 | json_data = {"file": img_base64, "classify": consts.MVC_CLASSIFY} | 185 | 'application': '', |
186 | 'deMortgageDate': '' | ||
187 | } | ||
188 | json_data = {"file": img_base64, "classify": consts.MVC_CLASSIFY, "version": "green"} | ||
185 | try: | 189 | try: |
190 | url = conf.OCR_URL_FOLDER | ||
186 | response = requests.post(url, json=json_data) | 191 | response = requests.post(url, json=json_data) |
192 | if response.status_code != 200: | ||
193 | return result_obj | ||
194 | response.encoding = 'unicode_escape' | ||
187 | ocr_res = response.json() | 195 | ocr_res = response.json() |
188 | results = ocr_res.get('results') | 196 | results = ocr_res.get('results') |
189 | if ocr_res.get('page', '') == 'VehicleRegArea': | 197 | if ocr_res.get('page', '') == 'VehicleRegArea': |
... | @@ -199,10 +207,46 @@ class PosHandler: | ... | @@ -199,10 +207,46 @@ class PosHandler: |
199 | info = results.get('1.机动车所有人/身份证名称/号码', {}) | 207 | info = results.get('1.机动车所有人/身份证名称/号码', {}) |
200 | result_obj['customerName'] = info.get('words', '').split('/')[0] | 208 | result_obj['customerName'] = info.get('words', '').split('/')[0] |
201 | except Exception as e: | 209 | except Exception as e: |
202 | LoggerMixin.running_log.error('[PosHandler de_mortgage_ocr_process] [error={0}]'.format(e.format_exc())) | 210 | LoggerMixin.running_log.error("[PosHandler de_mortgage_ocr_process] error", exc_info=1) |
211 | return result_obj | ||
212 | |||
213 | @staticmethod | ||
214 | def de_mortgage_ocr_process1(img_base64): | ||
203 | result_obj = { | 215 | result_obj = { |
204 | 'customerName': '', | 216 | 'customerName': '', |
205 | 'application': '', | 217 | 'application': '', |
206 | 'deMortgageDate': '' | 218 | 'deMortgageDate': '' |
207 | } | 219 | } |
220 | url = conf.OCR_URL_FOLDER | ||
221 | json_data = {"file": img_base64, "classify": consts.MVC_CLASSIFY, "version": "green"} | ||
222 | try: | ||
223 | response = requests.post(url, json=json_data) | ||
224 | # unicode转中文 | ||
225 | response.encoding = 'unicode_escape' | ||
226 | if response.status_code != 200: | ||
227 | LoggerMixin.exception_log.error( | ||
228 | "[PosHandler de_mortgage_ocr_process1] request error, url: %s, response: %s", | ||
229 | url, response.text) | ||
230 | return result_obj | ||
231 | result = response.json() | ||
232 | data = result.get('data', []) | ||
233 | for item in data: | ||
234 | ocr_res = item.get('data', {}) | ||
235 | if ocr_res.get('page', '') == 'page_34': | ||
236 | words_result = ocr_res.get('words_result', {}) | ||
237 | registration_bar = words_result.get('registration_bar', []) | ||
238 | for registration in registration_bar: | ||
239 | if registration.get('register_type', '') == '抵押登记': | ||
240 | register_info = registration.get('register_info', {}) | ||
241 | result_obj['application'] = register_info.get('抵押权人姓名/名称', '') | ||
242 | elif registration.get('register_type', '') == '解除抵押': | ||
243 | register_info = registration.get('register_info', {}) | ||
244 | result_obj['deMortgageDate'] = register_info.get('解除抵押日期', '') | ||
245 | elif ocr_res.get('page', '') == 'page_12': | ||
246 | words_result = ocr_res.get('words_result', {}) | ||
247 | for _, word_result in words_result.items(): | ||
248 | if word_result.get('chinese_key', '') == '1.机动车所有人/身份证名称/号码': | ||
249 | result_obj['customerName'] = word_result.get('words', '').split('/')[0] | ||
250 | except Exception as e: | ||
251 | LoggerMixin.exception_log.error("[PosHandler de_mortgage_ocr_process1] error", exc_info=1) | ||
208 | return result_obj | 252 | return result_obj | ... | ... |
... | @@ -804,8 +804,6 @@ class SECompareView(GenericView, PreSEHandler): | ... | @@ -804,8 +804,6 @@ class SECompareView(GenericView, PreSEHandler): |
804 | # SE preSettlement | 804 | # SE preSettlement |
805 | @use_args(se_compare_args, location='data') | 805 | @use_args(se_compare_args, location='data') |
806 | def post(self, request, args): # interface_report pos to ocr | 806 | def post(self, request, args): # interface_report pos to ocr |
807 | # 模拟耗时操作 | ||
808 | time.sleep(25) | ||
809 | start_time = time.time() | 807 | start_time = time.time() |
810 | log_base = '[prese]' | 808 | log_base = '[prese]' |
811 | # 存库 | 809 | # 存库 | ... | ... |
... | @@ -5,6 +5,7 @@ from apps.doc.views import CustomDecimal, CustomDate | ... | @@ -5,6 +5,7 @@ from apps.doc.views import CustomDecimal, CustomDate |
5 | from common import response | 5 | from common import response |
6 | from apps.doc.mixins import PosHandler | 6 | from apps.doc.mixins import PosHandler |
7 | from common.tools.comparison import cp | 7 | from common.tools.comparison import cp |
8 | |||
8 | from rest_framework.permissions import IsAuthenticated | 9 | from rest_framework.permissions import IsAuthenticated |
9 | from apps.account.authentication import OAuth2AuthenticationWithUser | 10 | from apps.account.authentication import OAuth2AuthenticationWithUser |
10 | 11 | ||
... | @@ -36,18 +37,18 @@ class NSCInvoiceView(GenericView): | ... | @@ -36,18 +37,18 @@ class NSCInvoiceView(GenericView): |
36 | @use_args(input_args, location='data') | 37 | @use_args(input_args, location='data') |
37 | def post(self, request, args): # interface_report mpos to ocr | 38 | def post(self, request, args): # interface_report mpos to ocr |
38 | content = args.get('content', {}) | 39 | content = args.get('content', {}) |
39 | invoice_code = content['invoiceCode'] | 40 | invoice_code = content.get('invoiceCode', '') |
40 | invoice_number = content['invoiceNumber'] | 41 | invoice_number = content.get('invoiceNumber', '') |
41 | issue_date = content['issueDate'] | 42 | issue_date = content.get('issueDate', None) |
42 | buyer_name = content['buyerName'] | 43 | buyer_name = content.get('buyerName', '') |
43 | buyer_id = content['buyerId'] | 44 | buyer_id = content.get('buyerId', 0) |
44 | vin = content['vin'] | 45 | vin = content.get('vin', '') |
45 | dealer = content['dealer'] | 46 | dealer = content.get('dealer', '') |
46 | price_with_vat = content['priceWithVat'] | 47 | price_with_vat = content.get('priceWithVat', 0.0) |
47 | price_no_vat = content['priceNoVat'] | 48 | price_no_vat = content.get('priceNoVat', 0.0) |
48 | price_in_capitals = content['priceInCapitals'] | 49 | price_in_capitals = content.get('priceInCapitals', '') |
49 | vat = content['vat'] | 50 | vat = content.get('vat', 0.0) |
50 | vat_rate = content['vatRate'] | 51 | vat_rate = content.get('vatRate', 0.0) |
51 | 52 | ||
52 | return response.ok() | 53 | return response.ok() |
53 | 54 | ||
... | @@ -68,46 +69,50 @@ de_mortgage_comments = { | ... | @@ -68,46 +69,50 @@ de_mortgage_comments = { |
68 | 69 | ||
69 | 70 | ||
70 | # 解除抵押识别处理 | 71 | # 解除抵押识别处理 |
71 | # class DeMortgageView(GenericView): | 72 | class DeMortgageView(GenericView): |
72 | # @use_args(de_mortgage_args, location='data') | 73 | permission_classes = [IsAuthenticated] |
73 | # def post(self, request, args): # interface_report mpos to ocr | 74 | authentication_classes = [OAuth2AuthenticationWithUser] |
74 | # img_files = args.get('file_base64', []) | 75 | |
75 | # customer_name = args.get('customerName', '') | 76 | @use_args(de_mortgage_args, location='data') |
76 | # application = args.get('application', '') | 77 | def post(self, request, args): # interface_report mpos to ocr |
77 | # de_mortgage_date = args.get('deMortgageDate') | 78 | img_files = args.get('file_base64', []) |
78 | # | 79 | customer_name = args.get('customerName', '') |
79 | # fields_input = { | 80 | application = args.get('application', '') |
80 | # 'customerName': customer_name, | 81 | de_mortgage_date = args.get('deMortgageDate') |
81 | # 'application': application, | 82 | |
82 | # 'deMortgageDate': de_mortgage_date | 83 | fields_input = { |
83 | # } | 84 | 'customerName': customer_name, |
84 | # de_mortgage_info = {} | 85 | 'application': application, |
85 | # # 绿本必须分开ocr | 86 | 'deMortgageDate': de_mortgage_date |
86 | # for img_file in img_files: | 87 | } |
87 | # info = PosHandler.de_mortgage_ocr_process(img_file) | 88 | de_mortgage_info = {} |
88 | # de_mortgage_info.update(info) | 89 | # 绿本必须分开ocr |
89 | # | 90 | for img_file in img_files: |
90 | # request_pass = True | 91 | info = PosHandler.de_mortgage_ocr_process1(img_file) |
91 | # fields_result = [] | 92 | de_mortgage_info.update(info) |
92 | # for field_name, input_val in enumerate(fields_input): | 93 | |
93 | # field_result = { | 94 | request_pass = True |
94 | # "name": field_name, | 95 | fields_result = [] |
95 | # "input": input_val, | 96 | for field_name, input_val in fields_input.items(): |
96 | # "ocr": de_mortgage_info.get(field_name, ''), | 97 | field_result = { |
97 | # "field_is_pass": False, | 98 | "name": field_name, |
98 | # "comments": '' | 99 | "input": input_val, |
99 | # } | 100 | "ocr": de_mortgage_info.get(field_name, ''), |
100 | # result, _ = cp.common_compare(field_result['input'], field_result['ocr']) | 101 | "field_is_pass": False, |
101 | # if result == cp.RESULT_Y: | 102 | "comments": '' |
102 | # fields_result['field_is_pass'] = result | 103 | } |
103 | # else: | 104 | result, _ = cp.common_compare(field_result['input'], field_result['ocr']) |
104 | # request_pass = False | 105 | if result == cp.RESULT_Y: |
105 | # fields_result['comments'] = de_mortgage_comments.get(field_name, '') | 106 | fields_result['field_is_pass'] = result |
106 | # | 107 | else: |
107 | # fields_result.append(field_result) | 108 | request_pass = False |
108 | # | 109 | fields_result['comments'] = de_mortgage_comments.get(field_name, '') |
109 | # result = { | 110 | |
110 | # "is_pass": request_pass, | 111 | fields_result.append(field_result) |
111 | # "fields": fields_result | 112 | |
112 | # } | 113 | result = { |
113 | # return response.ok(data=result) | 114 | "is_pass": request_pass, |
115 | "fields": fields_result | ||
116 | } | ||
117 | return response.ok(data=result) | ||
118 | ... | ... |
-
Please register or sign in to post a comment