a1504767 by 王聪

fsm update

1 parent 65dba53a
...@@ -2379,4 +2379,25 @@ MPOS_MAP = { ...@@ -2379,4 +2379,25 @@ MPOS_MAP = {
2379 2379
2380 FOLDER_WSC_CLASSIFY = 199 2380 FOLDER_WSC_CLASSIFY = 199
2381 2381
2382 APPLICANT_STATUS = 2382
2383 FSM_BEFORE_ACTIVITED_STATUS = {
2384 "APSVD": "Saved",
2385 "APEAE": "E-app Editing",
2386 "APADA": "Awaiting Dealer Action",
2387 "APAPR": "Acceptance Processing",
2388 "APPSB": "Pre-submit Processed",
2389 "APSBT": "Submitted",
2390 "APAPP": "Approved",
2391 "APHOC": "Held Offer-Docs",
2392 "APHOD": "Held Offer-Data",
2393 "APINI": "Initiated",
2394 "APSEP": "Settlement Processing"
2395 }
2396
2397 FSM_ACTIVITED_STATUS = {
2398 "APADF": "Activated-Document Follow up",
2399 "APASC": "Activated-Awaiting Settlement Check",
2400 "APIPN": "Activated-Invoice Passed-Non PT",
2401 "APIPP": "Activated-Invoice Passed-PT Doc Required",
2402 "APARD": "Activated-Review done",
2403 }
...\ No newline at end of file ...\ No newline at end of file
......
...@@ -330,6 +330,11 @@ class AFCOCRResult(models.Model): ...@@ -330,6 +330,11 @@ class AFCOCRResult(models.Model):
330 hil_contract_3_ocr = models.TextField(null=True, verbose_name="HIL合同3") 330 hil_contract_3_ocr = models.TextField(null=True, verbose_name="HIL合同3")
331 qrs_ocr = models.TextField(null=True, verbose_name="AFC合同确认书") 331 qrs_ocr = models.TextField(null=True, verbose_name="AFC合同确认书")
332 332
333 fsm_wep_ocr = models.TextField(null=True, verbose_name="延长保修合同")
334 fsm_msi_ocr = models.TextField(null=True, verbose_name="长悦保养合同")
335 fsm_sc_ocr = models.TextField(null=True, verbose_name="汽车销售合同")
336 fsm_activited = models.IntegerField(null=False, default=0, verbose_name="fsm激活状态 1:激活")
337
333 update_time = models.DateTimeField(auto_now=True, verbose_name='修改时间') 338 update_time = models.DateTimeField(auto_now=True, verbose_name='修改时间')
334 create_time = models.DateTimeField(auto_now_add=True, verbose_name='创建时间') 339 create_time = models.DateTimeField(auto_now_add=True, verbose_name='创建时间')
335 340
...@@ -366,6 +371,11 @@ class HILOCRResult(models.Model): ...@@ -366,6 +371,11 @@ class HILOCRResult(models.Model):
366 hil_contract_3_ocr = models.TextField(null=True, verbose_name="HIL合同3") 371 hil_contract_3_ocr = models.TextField(null=True, verbose_name="HIL合同3")
367 qrs_ocr = models.TextField(null=True, verbose_name="AFC合同确认书") 372 qrs_ocr = models.TextField(null=True, verbose_name="AFC合同确认书")
368 373
374 fsm_wep_ocr = models.TextField(null=True, verbose_name="延长保修合同")
375 fsm_msi_ocr = models.TextField(null=True, verbose_name="长悦保养合同")
376 fsm_sc_ocr = models.TextField(null=True, verbose_name="汽车销售合同")
377 fsm_activited = models.IntegerField(null=False, default=0, verbose_name="fsm激活状态 1:激活")
378
369 update_time = models.DateTimeField(auto_now=True, verbose_name='修改时间') 379 update_time = models.DateTimeField(auto_now=True, verbose_name='修改时间')
370 create_time = models.DateTimeField(auto_now_add=True, verbose_name='创建时间') 380 create_time = models.DateTimeField(auto_now_add=True, verbose_name='创建时间')
371 381
...@@ -401,6 +411,11 @@ class AFCSEOCRResult(models.Model): ...@@ -401,6 +411,11 @@ class AFCSEOCRResult(models.Model):
401 hil_contract_3_ocr = models.TextField(null=True, verbose_name="HIL合同3") 411 hil_contract_3_ocr = models.TextField(null=True, verbose_name="HIL合同3")
402 qrs_ocr = models.TextField(null=True, verbose_name="AFC合同确认书") 412 qrs_ocr = models.TextField(null=True, verbose_name="AFC合同确认书")
403 413
414 fsm_wep_ocr = models.TextField(null=True, verbose_name="延长保修合同")
415 fsm_msi_ocr = models.TextField(null=True, verbose_name="长悦保养合同")
416 fsm_sc_ocr = models.TextField(null=True, verbose_name="汽车销售合同")
417 fsm_activited = models.IntegerField(null=False, default=0, verbose_name="fsm激活状态 1:激活")
418
404 update_time = models.DateTimeField(auto_now=True, verbose_name='修改时间') 419 update_time = models.DateTimeField(auto_now=True, verbose_name='修改时间')
405 create_time = models.DateTimeField(auto_now_add=True, verbose_name='创建时间') 420 create_time = models.DateTimeField(auto_now_add=True, verbose_name='创建时间')
406 421
...@@ -436,6 +451,10 @@ class HILSEOCRResult(models.Model): ...@@ -436,6 +451,10 @@ class HILSEOCRResult(models.Model):
436 hil_contract_2_ocr = models.TextField(null=True, verbose_name="HIL合同2") 451 hil_contract_2_ocr = models.TextField(null=True, verbose_name="HIL合同2")
437 hil_contract_3_ocr = models.TextField(null=True, verbose_name="HIL合同3") 452 hil_contract_3_ocr = models.TextField(null=True, verbose_name="HIL合同3")
438 qrs_ocr = models.TextField(null=True, verbose_name="AFC合同确认书") 453 qrs_ocr = models.TextField(null=True, verbose_name="AFC合同确认书")
454 fsm_wep_ocr = models.TextField(null=True, verbose_name="延长保修合同")
455 fsm_msi_ocr = models.TextField(null=True, verbose_name="长悦保养合同")
456 fsm_sc_ocr = models.TextField(null=True, verbose_name="汽车销售合同")
457 fsm_activited = models.IntegerField(null=False, default=0, verbose_name="fsm激活状态 1:激活")
439 458
440 update_time = models.DateTimeField(auto_now=True, verbose_name='修改时间') 459 update_time = models.DateTimeField(auto_now=True, verbose_name='修改时间')
441 create_time = models.DateTimeField(auto_now_add=True, verbose_name='创建时间') 460 create_time = models.DateTimeField(auto_now_add=True, verbose_name='创建时间')
......
...@@ -48,8 +48,12 @@ from .models import ( ...@@ -48,8 +48,12 @@ from .models import (
48 MposReport, 48 MposReport,
49 GenericOCRReport, 49 GenericOCRReport,
50 InterfaceReport, 50 InterfaceReport,
51 HILOCRResult,
52 HILSEOCRResult,
53 AFCOCRResult,
54 AFCSEOCRResult
51 ) 55 )
52 from .named_enum import ErrorType, AutoResult, WholeResult, RPAResult, SystemName 56 from .named_enum import ErrorType, AutoResult, WholeResult, RPAResult, SystemName, RequestTeam
53 from .mixins import DocHandler, MPOSHandler, PreSEHandler 57 from .mixins import DocHandler, MPOSHandler, PreSEHandler
54 from . import consts 58 from . import consts
55 from apps.account.authentication import OAuth2AuthenticationWithUser 59 from apps.account.authentication import OAuth2AuthenticationWithUser
...@@ -573,6 +577,24 @@ class UploadDocView(GenericView, DocHandler): ...@@ -573,6 +577,24 @@ class UploadDocView(GenericView, DocHandler):
573 data_source = self.fix_data_source(data_source) 577 data_source = self.fix_data_source(data_source)
574 document_scheme = self.fix_scheme(document_scheme) 578 document_scheme = self.fix_scheme(document_scheme)
575 579
580 # fsm激活状态, 更新ocr_result 表fsm状态
581 if consts.FSM_ACTIVITED_STATUS.get(application_status):
582 ocr_result_obj = None
583 if business_type == consts.HIL_PREFIX:
584 if document_scheme == RequestTeam.ACCEPTANCE[1]:
585 ocr_result_obj = HILOCRResult.objects.filter(application_id=application_id).first()
586 elif document_scheme == RequestTeam.SETTLEMENT[1]:
587 ocr_result_obj = HILSEOCRResult.objects.filter(application_id=application_id).first()
588 elif business_type == consts.AFC_PREFIX:
589 if document_scheme == RequestTeam.ACCEPTANCE[1]:
590 ocr_result_obj = AFCOCRResult.objects.filter(application_id=application_id).first()
591 elif document_scheme == RequestTeam.SETTLEMENT[1]:
592 ocr_result_obj = AFCSEOCRResult.objects.filter(application_id=application_id).first()
593
594 if ocr_result_obj:
595 ocr_result_obj.fsmActivited = 1
596 ocr_result_obj.save()
597
576 if data_source == consts.DATA_SOURCE_LIST[1]: 598 if data_source == consts.DATA_SOURCE_LIST[1]:
577 if document_name.endswith('-证书.pdf') or document_name.endswith('-证书'): 599 if document_name.endswith('-证书.pdf') or document_name.endswith('-证书'):
578 self.running_log.info('[doc upload success] [eapp license skip] [args={0}]'.format(args)) 600 self.running_log.info('[doc upload success] [eapp license skip] [args={0}]'.format(args))
...@@ -1371,8 +1393,7 @@ class SECMSView(GenericView): ...@@ -1371,8 +1393,7 @@ class SECMSView(GenericView):
1371 if fsm_contract: 1393 if fsm_contract:
1372 fsm_compare.apply_async((application_id, business_type, None, None, False, True), 1394 fsm_compare.apply_async((application_id, business_type, None, None, False, True),
1373 queue='queue_compare') 1395 queue='queue_compare')
1374 # compare.apply_async((application_id, business_type, None, None, False, True), 1396
1375 # queue='queue_compare')
1376 else: 1397 else:
1377 # 触发比对 1398 # 触发比对
1378 compare.apply_async((application_id, business_type, None, None, False, True), 1399 compare.apply_async((application_id, business_type, None, None, False, True),
......
...@@ -7,6 +7,9 @@ import traceback ...@@ -7,6 +7,9 @@ import traceback
7 import numpy as np 7 import numpy as np
8 from datetime import datetime, timedelta 8 from datetime import datetime, timedelta
9 from collections import OrderedDict 9 from collections import OrderedDict
10
11 import requests
12
10 from . import app 13 from . import app
11 from settings import conf 14 from settings import conf
12 from apps.doc.models import ( 15 from apps.doc.models import (
...@@ -3267,19 +3270,25 @@ def se_compare(application_id, application_entity, ocr_res_id, last_obj, ocr_res ...@@ -3267,19 +3270,25 @@ def se_compare(application_id, application_entity, ocr_res_id, last_obj, ocr_res
3267 3270
3268 @app.task 3271 @app.task
3269 def fsm_compare(application_id, application_entity, uniq_seq, ocr_res_id, is_ca=True, is_cms=False): 3272 def fsm_compare(application_id, application_entity, uniq_seq, ocr_res_id, is_ca=True, is_cms=False):
3273 compare_log.info('{0} [receive fsm task] [entity={1}] [id={2}] [uniq_seq={3}] [ocr_res_id={4}] [is_ca={5}] '
3274 '[is_cms={6}]'.format(log_base, application_entity, application_id, uniq_seq, ocr_res_id,
3275 is_ca, is_cms))
3270 # 调用java fsm 比对流程接口(http) 3276 # 调用java fsm 比对流程接口(http)
3271 if application_entity == consts.HIL_PREFIX:
3272 comparison_class = HILSECMSInfo if is_cms else HILSEComparisonInfo
3273 else:
3274 comparison_class = AFCSECMSInfo if is_cms else AFCSEComparisonInfo
3275 last_obj = comparison_class.objects.filter(application_id=application_id).last()
3276 if last_obj is None:
3277 compare_log.info('{0} [comparison info empty] [entity={1}] [id={2}] [uniq_seq={3}] [ocr_res_id={4}] '
3278 '[is_ca={5}] [is_cms]={6}'.format(log_base, application_entity, application_id, uniq_seq,
3279 ocr_res_id, is_ca, is_cms))
3280 return
3281
3282 # 调用Java fsm 比对流程接口, fsm 是se流程, ca可以暂时忽略 3277 # 调用Java fsm 比对流程接口, fsm 是se流程, ca可以暂时忽略
3278 url = conf.FSM_URL
3279 body = {
3280 'applicationId': application_id,
3281 'businessType': application_entity,
3282 'ocrResId': ocr_res_id,
3283 'isCa': is_ca,
3284 'isCms': is_cms
3285 }
3286 try:
3287 resp = requests.post(url, data=body)
3288 compare_log.info(resp.text)
3289 except Exception as e:
3290 compare_log.error("fsm full request to java error, url:{0}, param:{1}, errorMsg:{2}".format(
3291 url, json.dumps(body), traceback.format_exc()))
3283 3292
3284 3293
3285 @app.task 3294 @app.task
......
Styling with Markdown is supported
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!