7aa0284c by 周伟奇

eDMS add doc info

1 parent 1c0f538f
...@@ -13,3 +13,14 @@ CUSTOM_CLIENT = 'CustomClient' ...@@ -13,3 +13,14 @@ CUSTOM_CLIENT = 'CustomClient'
13 FIXED_TOKEN = '00000000-0000-0000-0000-000000000000' 13 FIXED_TOKEN = '00000000-0000-0000-0000-000000000000'
14 FIXED_FILE_SIZE = 0 14 FIXED_FILE_SIZE = 0
15 DOWNLOAD_ACTION_TYPE = 'Downloaded' 15 DOWNLOAD_ACTION_TYPE = 'Downloaded'
16
17 DOC_SCHEMA_ID_FILL = {
18 'Acceptance': (1, 'DFE-AutoFilingScript'),
19 'Settlement': (20, 'DFE-AutoFilingScript'),
20 'Contract Management': (86, 'Schema-Based')
21 }
22 DOC_SCHEMA_TYPE = 'ElectronicRecord'
23 APPLICATION_ID_META_FIELD_id = 1
24 DEALER_CODE_META_FIELD_id = 13
25 BUSINESS_TYPE_META_FIELD_id = 93
26 DEALER_CODE = 'ocr_situ_group'
......
1 import requests 1 import requests
2 from zeep import Client 2 from zeep import Client, xsd
3 from settings import conf 3 from settings import conf
4 from . import consts 4 from . import consts
5 from common.redis_cache import redis_handler as rh 5 from common.redis_cache import redis_handler as rh
...@@ -80,18 +80,54 @@ class EDMS: ...@@ -80,18 +80,54 @@ class EDMS:
80 else: 80 else:
81 raise Exception 81 raise Exception
82 82
83 def add_doc_info(self, headers, token, app_info): 83 def get_doc_info(self, token, doc_info):
84 doc_schema_id, auto_filing = consts.DOC_SCHEMA_ID_FILL.get(doc_info.get('document_scheme'))
85 application_id = doc_info.get('application_id')
86 doc_file_name = doc_info.get('doc_file_name')
87 business_type = doc_info.get('business_type')
88 fields_with_value = [
89 {'FieldId': consts.APPLICATION_ID_META_FIELD_id,
90 'FieldValue': xsd.AnyObject(xsd.String(), application_id)},
91 {'FieldId': consts.DEALER_CODE_META_FIELD_id,
92 'FieldValue': xsd.AnyObject(xsd.String(), consts.DEALER_CODE)},
93 {'FieldId': consts.BUSINESS_TYPE_META_FIELD_id,
94 'FieldValue': xsd.AnyObject(xsd.String(), business_type)},
95 ]
96 fields_with_values = {'FieldWithValue': fields_with_value}
97 info = {
98 'DocumentSchemaId': doc_schema_id,
99 'DocumentName': doc_file_name,
100 'FieldsWithValues': fields_with_values,
101 'UploadToken': token,
102 'OriginalFileName': doc_file_name,
103 'SendEmailToMembers': False,
104 'AutoFilingScriptToUse': auto_filing,
105 'DocumentSchemaType': consts.DOC_SCHEMA_TYPE,
106 }
107 return info
108
109 def add_doc_info(self, headers, token, doc_info):
110 info = self.get_doc_info(token, doc_info)
84 with self.dm_client.settings(extra_http_headers=headers): 111 with self.dm_client.settings(extra_http_headers=headers):
85 res = self.dm_client.service.AddDocumentInfo() 112 metadata_version_id = self.dm_client.service.AddDocumentInfo(info=info)
86 return res 113 return metadata_version_id
87 114
88 def upload(self, file_path, file_size, app_info): 115 def upload(self, file_path, file_size, doc_info):
116 # file_path = '/Users/clay/Postman/files/OCRuploadTest4.txt'
117 # file_size = 16
118 # doc_info = {
119 # 'document_scheme': 'Acceptance',
120 # 'application_id': 'CH-B100014248',
121 # 'doc_file_name': 'OCRuploadTest4.txt',
122 # 'business_type': 'CO00001',
123 # }
89 headers = self.get_headers() 124 headers = self.get_headers()
90 token = self.create_upload_token(headers, file_size) 125 token = self.create_upload_token(headers, file_size)
91 headers.update({'Content-Type': 'application/octet-stream'}) 126 headers.update({'Content-Type': 'application/octet-stream'})
92 params = {'token': token} 127 params = {'token': token}
93 self.upload_handler(file_path, params, headers) 128 self.upload_handler(file_path, params, headers)
94 headers.pop('Content-Type') 129 headers.pop('Content-Type')
95 self.add_doc_info(headers, token, app_info) 130 metadata_version_id = self.add_doc_info(headers, token, doc_info)
131 return metadata_version_id
96 132
97 133
......
...@@ -56,7 +56,7 @@ class Command(BaseCommand, LoggerMixin): ...@@ -56,7 +56,7 @@ class Command(BaseCommand, LoggerMixin):
56 doc_id = int(doc_id_str) 56 doc_id = int(doc_id_str)
57 doc_class = HILDoc if business_type == consts.HIL_PREFIX else AFCDoc 57 doc_class = HILDoc if business_type == consts.HIL_PREFIX else AFCDoc
58 doc_info = doc_class.objects.filter(id=doc_id, status=DocStatus.INIT.value).values( 58 doc_info = doc_class.objects.filter(id=doc_id, status=DocStatus.INIT.value).values(
59 'id', 'metadata_version_id', 'application_id', 'document_name').first() 59 'id', 'metadata_version_id', 'application_id', 'document_name', 'document_scheme').first()
60 if doc_info is None: 60 if doc_info is None:
61 self.cronjob_log.warn('{0} [get_doc_info] [doc completed] [task_str={1}] [is_priority={2}]'.format( 61 self.cronjob_log.warn('{0} [get_doc_info] [doc completed] [task_str={1}] [is_priority={2}]'.format(
62 self.log_base, task_str, is_priority)) 62 self.log_base, task_str, is_priority))
......
...@@ -701,13 +701,13 @@ ...@@ -701,13 +701,13 @@
701 </s:element> 701 </s:element>
702 <s:complexType name="DocumentInfo"> 702 <s:complexType name="DocumentInfo">
703 <s:sequence> 703 <s:sequence>
704 <s:element minOccurs="1" maxOccurs="1" name="FolderId" type="s:int" /> 704 <s:element minOccurs="0" maxOccurs="1" name="FolderId" type="s:int" />
705 <s:element minOccurs="1" maxOccurs="1" name="DocumentSchemaId" type="s:int" /> 705 <s:element minOccurs="1" maxOccurs="1" name="DocumentSchemaId" type="s:int" />
706 <s:element minOccurs="0" maxOccurs="1" name="DocumentName" type="s:string" /> 706 <s:element minOccurs="0" maxOccurs="1" name="DocumentName" type="s:string" />
707 <s:element minOccurs="0" maxOccurs="1" name="FieldsWithValues" type="tns:ArrayOfFieldWithValue" /> 707 <s:element minOccurs="0" maxOccurs="1" name="FieldsWithValues" type="tns:ArrayOfFieldWithValue" />
708 <s:element minOccurs="1" maxOccurs="1" name="UploadToken" type="s1:guid" /> 708 <s:element minOccurs="1" maxOccurs="1" name="UploadToken" type="s1:guid" />
709 <s:element minOccurs="0" maxOccurs="1" name="OriginalFileName" type="s:string" /> 709 <s:element minOccurs="0" maxOccurs="1" name="OriginalFileName" type="s:string" />
710 <s:element minOccurs="1" maxOccurs="1" name="SnapshotId" type="s1:guid" /> 710 <s:element minOccurs="0" maxOccurs="1" name="SnapshotId" type="s1:guid" />
711 <s:element minOccurs="1" maxOccurs="1" name="SendEmailToMembers" type="s:boolean" /> 711 <s:element minOccurs="1" maxOccurs="1" name="SendEmailToMembers" type="s:boolean" />
712 <s:element minOccurs="0" maxOccurs="1" name="DocumentNumber" type="s:string" /> 712 <s:element minOccurs="0" maxOccurs="1" name="DocumentNumber" type="s:string" />
713 <s:element minOccurs="0" maxOccurs="1" name="VersionNumber" type="s:string" /> 713 <s:element minOccurs="0" maxOccurs="1" name="VersionNumber" type="s:string" />
......
Styling with Markdown is supported
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!