GCAP add business type
Showing
8 changed files
with
35 additions
and
35 deletions
| ... | @@ -22,4 +22,4 @@ class LoginView(ObtainJSONWebToken, GenericView): | ... | @@ -22,4 +22,4 @@ class LoginView(ObtainJSONWebToken, GenericView): |
| 22 | 'user_name': user.username, | 22 | 'user_name': user.username, |
| 23 | 'token': res.data.get('token'), | 23 | 'token': res.data.get('token'), |
| 24 | } | 24 | } |
| 25 | return response.ok(data=data) | ||
| ... | \ No newline at end of file | ... | \ No newline at end of file |
| 25 | return response.ok(data=data) | ... | ... |
| 1 | PAGE_DEFAULT = 1 | 1 | PAGE_DEFAULT = 1 |
| 2 | PAGE_SIZE_DEFAULT = 10 | 2 | PAGE_SIZE_DEFAULT = 10 |
| 3 | 3 | ||
| 4 | BUSINESS_TYPE = ['HIL', 'AFC'] | 4 | DOC_SCHEME_LIST = ['Acceptance', 'Settlement', 'Contract Management'] |
| 5 | HIL_SET = {'HIL', 'hil', 'CO00002', 'C000002'} | 5 | DATA_SOURCE_LIST = ['POS', 'EAPP', 'Econtract'] |
| 6 | BUSINESS_TYPE_LIST = ['HIL', 'AFC'] | ||
| 7 | HIL_SET = {'HIL', 'HIl', 'HiL', 'Hil', 'hIL', 'hIl', 'hiL', 'hil', 'CO00002'} | ||
| 6 | HIL_PREFIX = 'HIL' | 8 | HIL_PREFIX = 'HIL' |
| 7 | AFC_PREFIX = 'AFC' | 9 | AFC_PREFIX = 'AFC' |
| 8 | 10 | ... | ... |
| 1 | import os | ||
| 2 | from settings import conf | ||
| 3 | from .named_enum import DocStatus | 1 | from .named_enum import DocStatus |
| 2 | from .models import HILDoc, AFCDoc | ||
| 3 | from . import consts | ||
| 4 | 4 | ||
| 5 | 5 | ||
| 6 | class DocHandler: | 6 | class DocHandler: |
| ... | @@ -24,3 +24,9 @@ class DocHandler: | ... | @@ -24,3 +24,9 @@ class DocHandler: |
| 24 | doc_dict['excel_link'] = self.get_link(doc_id, 'excel') | 24 | doc_dict['excel_link'] = self.get_link(doc_id, 'excel') |
| 25 | return list(doc_queryset) | 25 | return list(doc_queryset) |
| 26 | 26 | ||
| 27 | @staticmethod | ||
| 28 | def get_doc_class(business_type): | ||
| 29 | is_hil = business_type in consts.HIL_SET | ||
| 30 | doc_class, prefix = (HILDoc, consts.HIL_PREFIX) if is_hil else (AFCDoc, consts.AFC_PREFIX) | ||
| 31 | return doc_class, prefix | ||
| 32 | ... | ... |
| ... | @@ -75,6 +75,7 @@ class GCAPRecords(models.Model): | ... | @@ -75,6 +75,7 @@ class GCAPRecords(models.Model): |
| 75 | id = models.AutoField(primary_key=True, verbose_name="id") | 75 | id = models.AutoField(primary_key=True, verbose_name="id") |
| 76 | status = models.IntegerField(null=True, verbose_name='状态') | 76 | status = models.IntegerField(null=True, verbose_name='状态') |
| 77 | rating = models.IntegerField(null=True, verbose_name='排名') | 77 | rating = models.IntegerField(null=True, verbose_name='排名') |
| 78 | entity = models.CharField(null=True, max_length=128, verbose_name="业务类型") | ||
| 78 | application_id = models.CharField(max_length=128, verbose_name="申请id") | 79 | application_id = models.CharField(max_length=128, verbose_name="申请id") |
| 79 | application_version = models.IntegerField(null=True, verbose_name='申请版本') | 80 | application_version = models.IntegerField(null=True, verbose_name='申请版本') |
| 80 | intermediate_decision = models.CharField(null=True, max_length=128, verbose_name="中间决策") | 81 | intermediate_decision = models.CharField(null=True, max_length=128, verbose_name="中间决策") | ... | ... |
| ... | @@ -14,13 +14,6 @@ class DocScheme(NamedEnum): | ... | @@ -14,13 +14,6 @@ class DocScheme(NamedEnum): |
| 14 | SETTLEMENT = (1, 'Settlement') | 14 | SETTLEMENT = (1, 'Settlement') |
| 15 | CONTRACT_MANAGEMENT = (2, 'Contract Management') | 15 | CONTRACT_MANAGEMENT = (2, 'Contract Management') |
| 16 | 16 | ||
| 17 | @classmethod | ||
| 18 | def get_value(cls, verbose_name, default=None, raise_on_missing=False): | ||
| 19 | val = super().get_value(verbose_name, default=None, raise_on_missing=False) | ||
| 20 | if val is None: | ||
| 21 | pass | ||
| 22 | return val | ||
| 23 | |||
| 24 | 17 | ||
| 25 | class BusinessType(NamedEnum): | 18 | class BusinessType(NamedEnum): |
| 26 | AFC = (0, "CO00001") | 19 | AFC = (0, "CO00001") | ... | ... |
| ... | @@ -12,7 +12,7 @@ from common import response | ... | @@ -12,7 +12,7 @@ from common import response |
| 12 | from common.mixins import GenericView | 12 | from common.mixins import GenericView |
| 13 | from common.tools.file_tools import file_write | 13 | from common.tools.file_tools import file_write |
| 14 | from common.redis_cache import redis_handler as rh | 14 | from common.redis_cache import redis_handler as rh |
| 15 | from .models import UploadDocRecords, DocStatus, HILDoc, AFCDoc, PriorityApplication, GCAPRecords | 15 | from .models import UploadDocRecords, DocStatus, PriorityApplication, GCAPRecords |
| 16 | from .mixins import DocHandler | 16 | from .mixins import DocHandler |
| 17 | from . import consts | 17 | from . import consts |
| 18 | 18 | ||
| ... | @@ -59,7 +59,7 @@ doc_list_args = { | ... | @@ -59,7 +59,7 @@ doc_list_args = { |
| 59 | validate=validate.OneOf(DocStatus.get_value_lst())), | 59 | validate=validate.OneOf(DocStatus.get_value_lst())), |
| 60 | 'application_id': fields.Str(required=False, validate=validate.Length(max=64)), | 60 | 'application_id': fields.Str(required=False, validate=validate.Length(max=64)), |
| 61 | 'data_source': fields.Str(required=False, validate=validate.Length(max=64)), | 61 | 'data_source': fields.Str(required=False, validate=validate.Length(max=64)), |
| 62 | 'business_type': fields.Str(required=True, validate=validate.OneOf(consts.BUSINESS_TYPE)), | 62 | 'business_type': fields.Str(required=True, validate=validate.OneOf(consts.BUSINESS_TYPE_LIST)), |
| 63 | 'upload_time_start': fields.Date(required=False), | 63 | 'upload_time_start': fields.Date(required=False), |
| 64 | 'upload_time_end': fields.Date(required=False), | 64 | 'upload_time_end': fields.Date(required=False), |
| 65 | 'create_time_start': fields.Date(required=False), | 65 | 'create_time_start': fields.Date(required=False), |
| ... | @@ -73,6 +73,7 @@ upload_pdf_args = { | ... | @@ -73,6 +73,7 @@ upload_pdf_args = { |
| 73 | application_information = { | 73 | application_information = { |
| 74 | "SUBMIT_DATETIME": fields.DateTime(required=True), | 74 | "SUBMIT_DATETIME": fields.DateTime(required=True), |
| 75 | "STATUS": fields.Int(required=True), | 75 | "STATUS": fields.Int(required=True), |
| 76 | 'ENTITY': fields.Str(required=True, validate=validate.Length(max=100)), | ||
| 76 | "RATING": fields.Int(required=True), | 77 | "RATING": fields.Int(required=True), |
| 77 | "APPLICATION_ID": fields.Str(required=True, validate=validate.Length(max=100)), | 78 | "APPLICATION_ID": fields.Str(required=True, validate=validate.Length(max=100)), |
| 78 | "APPLICATION_VERSION": fields.Int(required=True), | 79 | "APPLICATION_VERSION": fields.Int(required=True), |
| ... | @@ -84,7 +85,7 @@ priority_doc_args = { | ... | @@ -84,7 +85,7 @@ priority_doc_args = { |
| 84 | } | 85 | } |
| 85 | 86 | ||
| 86 | 87 | ||
| 87 | class UploadDocView(GenericView): | 88 | class UploadDocView(GenericView, DocHandler): |
| 88 | permission_classes = [] | 89 | permission_classes = [] |
| 89 | 90 | ||
| 90 | # 上传(接收)文件接口 | 91 | # 上传(接收)文件接口 |
| ... | @@ -95,7 +96,6 @@ class UploadDocView(GenericView): | ... | @@ -95,7 +96,6 @@ class UploadDocView(GenericView): |
| 95 | document = args.get('document') | 96 | document = args.get('document') |
| 96 | business_type = document.get('businessType') | 97 | business_type = document.get('businessType') |
| 97 | application_id = application_data.get('applicationId') | 98 | application_id = application_data.get('applicationId') |
| 98 | is_hil = business_type in consts.HIL_SET | ||
| 99 | try: | 99 | try: |
| 100 | # 1. 上传信息记录 | 100 | # 1. 上传信息记录 |
| 101 | record = UploadDocRecords.objects.create( | 101 | record = UploadDocRecords.objects.create( |
| ... | @@ -116,7 +116,7 @@ class UploadDocView(GenericView): | ... | @@ -116,7 +116,7 @@ class UploadDocView(GenericView): |
| 116 | self.invalid_params(msg='metadataVersionId repeat') | 116 | self.invalid_params(msg='metadataVersionId repeat') |
| 117 | else: | 117 | else: |
| 118 | # 2. 根据业务类型分库存储 | 118 | # 2. 根据业务类型分库存储 |
| 119 | doc_class, prefix = (HILDoc, consts.HIL_PREFIX) if is_hil else (AFCDoc, consts.AFC_PREFIX) | 119 | doc_class, prefix = self.get_doc_class(business_type) |
| 120 | doc = doc_class.objects.create( | 120 | doc = doc_class.objects.create( |
| 121 | record_id=record.id, | 121 | record_id=record.id, |
| 122 | metadata_version_id=document.get('metadataVersionId'), | 122 | metadata_version_id=document.get('metadataVersionId'), |
| ... | @@ -159,7 +159,7 @@ class UploadDocView(GenericView): | ... | @@ -159,7 +159,7 @@ class UploadDocView(GenericView): |
| 159 | ''' | 159 | ''' |
| 160 | 160 | ||
| 161 | 161 | ||
| 162 | class PriorityDocView(GenericView): | 162 | class PriorityDocView(GenericView, DocHandler): |
| 163 | permission_classes = [] | 163 | permission_classes = [] |
| 164 | 164 | ||
| 165 | # 优先级订单接口 | 165 | # 优先级订单接口 |
| ... | @@ -168,9 +168,10 @@ class PriorityDocView(GenericView): | ... | @@ -168,9 +168,10 @@ class PriorityDocView(GenericView): |
| 168 | application_info = args.get('APPLICATION_INFORMATION') | 168 | application_info = args.get('APPLICATION_INFORMATION') |
| 169 | application_id = application_info.get('APPLICATION_ID') | 169 | application_id = application_info.get('APPLICATION_ID') |
| 170 | submit_datetime = application_info.get('SUBMIT_DATETIME') | 170 | submit_datetime = application_info.get('SUBMIT_DATETIME') |
| 171 | entity = application_info.get('ENTITY') | ||
| 171 | submit_datetime = timezone.make_naive(submit_datetime, timezone.get_current_timezone()) | 172 | submit_datetime = timezone.make_naive(submit_datetime, timezone.get_current_timezone()) |
| 172 | print(submit_datetime) | ||
| 173 | GCAPRecords.objects.create( | 173 | GCAPRecords.objects.create( |
| 174 | entity=entity, | ||
| 174 | status=application_info.get('STATUS'), | 175 | status=application_info.get('STATUS'), |
| 175 | rating=application_info.get('RATING'), | 176 | rating=application_info.get('RATING'), |
| 176 | application_id=application_id, | 177 | application_id=application_id, |
| ... | @@ -181,13 +182,9 @@ class PriorityDocView(GenericView): | ... | @@ -181,13 +182,9 @@ class PriorityDocView(GenericView): |
| 181 | _, created = PriorityApplication.objects.update_or_create(application_id=application_id, | 182 | _, created = PriorityApplication.objects.update_or_create(application_id=application_id, |
| 182 | defaults={'on_off': True}) | 183 | defaults={'on_off': True}) |
| 183 | if created: | 184 | if created: |
| 184 | doc_ids = HILDoc.objects.filter(application_id=application_id, | 185 | doc_class, prefix = self.get_doc_class(entity) |
| 185 | status=DocStatus.INIT.value).values_list('id', flat=True) | 186 | doc_ids = doc_class.objects.filter(application_id=application_id, |
| 186 | prefix = consts.HIL_PREFIX | 187 | status=DocStatus.INIT.value).values_list('id', flat=True) |
| 187 | if len(doc_ids) == 0: | ||
| 188 | doc_ids = AFCDoc.objects.filter(application_id=application_id, | ||
| 189 | status=DocStatus.INIT.value).values_list('id', flat=True) | ||
| 190 | prefix = consts.AFC_PREFIX | ||
| 191 | task_str_list = ['{0}_{1}'.format(prefix, doc_id) for doc_id in doc_ids] | 188 | task_str_list = ['{0}_{1}'.format(prefix, doc_id) for doc_id in doc_ids] |
| 192 | if not task_str_list: | 189 | if not task_str_list: |
| 193 | self.running_log.info( | 190 | self.running_log.info( |
| ... | @@ -226,7 +223,7 @@ class DocView(GenericView, DocHandler): | ... | @@ -226,7 +223,7 @@ class DocView(GenericView, DocHandler): |
| 226 | if create_time_start is not None and create_time_end is not None else Q() | 223 | if create_time_start is not None and create_time_end is not None else Q() |
| 227 | query = application_id_query & status_query & data_source_query & upload_finish_time_query & create_time_query | 224 | query = application_id_query & status_query & data_source_query & upload_finish_time_query & create_time_query |
| 228 | val_tuple = ('id', 'application_id', 'upload_finish_time', 'create_time', 'data_source', 'status') | 225 | val_tuple = ('id', 'application_id', 'upload_finish_time', 'create_time', 'data_source', 'status') |
| 229 | doc_class = HILDoc if business_type == consts.HIL_PREFIX else AFCDoc | 226 | doc_class, _ = self.get_doc_class(business_type) |
| 230 | doc_queryset = doc_class.objects.filter(query).values(*val_tuple).order_by('-upload_finish_time') | 227 | doc_queryset = doc_class.objects.filter(query).values(*val_tuple).order_by('-upload_finish_time') |
| 231 | doc_list = self.get_doc_list(doc_queryset) | 228 | doc_list = self.get_doc_list(doc_queryset) |
| 232 | 229 | ||
| ... | @@ -250,10 +247,9 @@ class DocView(GenericView, DocHandler): | ... | @@ -250,10 +247,9 @@ class DocView(GenericView, DocHandler): |
| 250 | const_str = '手工单' | 247 | const_str = '手工单' |
| 251 | metadata_version_id = str(int(time.time())) | 248 | metadata_version_id = str(int(time.time())) |
| 252 | upload_finish_time = timezone.now() | 249 | upload_finish_time = timezone.now() |
| 253 | document_scheme = random.choice(['Acceptance', 'Settlement', 'Contract Management']) | 250 | document_scheme = random.choice(consts.DOC_SCHEME_LIST) |
| 254 | data_source = random.choice(['POS', 'EAPP', 'Econtract']) | 251 | data_source = random.choice(consts.DATA_SOURCE_LIST) |
| 255 | business_type = random.choice(['AFC', 'HIL']) | 252 | business_type = random.choice(consts.BUSINESS_TYPE_LIST) |
| 256 | is_hil = business_type in consts.HIL_SET | ||
| 257 | record = UploadDocRecords.objects.create( | 253 | record = UploadDocRecords.objects.create( |
| 258 | metadata_version_id=metadata_version_id, | 254 | metadata_version_id=metadata_version_id, |
| 259 | application_id=const_str, | 255 | application_id=const_str, |
| ... | @@ -269,7 +265,7 @@ class DocView(GenericView, DocHandler): | ... | @@ -269,7 +265,7 @@ class DocView(GenericView, DocHandler): |
| 269 | ) | 265 | ) |
| 270 | 266 | ||
| 271 | # 2. 根据业务类型分库存储 | 267 | # 2. 根据业务类型分库存储 |
| 272 | doc_class, prefix = (HILDoc, consts.HIL_PREFIX) if is_hil else (AFCDoc, consts.AFC_PREFIX) | 268 | doc_class, prefix = self.get_doc_class(business_type) |
| 273 | doc = doc_class.objects.create( | 269 | doc = doc_class.objects.create( |
| 274 | record_id=record.id, | 270 | record_id=record.id, |
| 275 | metadata_version_id=metadata_version_id, | 271 | metadata_version_id=metadata_version_id, |
| ... | @@ -294,7 +290,7 @@ class DocView(GenericView, DocHandler): | ... | @@ -294,7 +290,7 @@ class DocView(GenericView, DocHandler): |
| 294 | os.makedirs(save_dir_path, exist_ok=True) | 290 | os.makedirs(save_dir_path, exist_ok=True) |
| 295 | file_write(pdf_file, save_file_path) | 291 | file_write(pdf_file, save_file_path) |
| 296 | 292 | ||
| 297 | self.running_log.info('[mock doc upload success] [args={0}] [record_id={1}] [is_hil={2}] [doc_id={3}] ' | 293 | self.running_log.info('[mock doc upload success] [args={0}] [record_id={1}] [prefix={2}] [doc_id={3}] ' |
| 298 | '[is_priority={4}] [enqueue_res={5}]'.format(args, record.id, is_hil, doc.id, | 294 | '[is_priority={4}] [enqueue_res={5}]'.format(args, record.id, prefix, doc.id, |
| 299 | is_priority, redis_res)) | 295 | is_priority, redis_res)) |
| 300 | return response.ok() | 296 | return response.ok() | ... | ... |
wsdl/DocumentManager.wsdl
0 → 100644
This diff could not be displayed because it is too large.
-
Please register or sign in to post a comment