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