39cc8176 by 冯轩

init 5153-5234

1 parent 6349bed3
...@@ -5,5 +5,7 @@ from . import views ...@@ -5,5 +5,7 @@ from . import views
5 urlpatterns = [ 5 urlpatterns = [
6 path(r'', views.DocView.as_view()), 6 path(r'', views.DocView.as_view()),
7 path(r'query/employee', views.EmployeeView.as_view()), 7 path(r'query/employee', views.EmployeeView.as_view()),
8 path(r'query/greenBookHistoryFile', views.SearchGBHistoryFileView.as_view()),
9 path(r'query/greenBookHistoryFile', views.DownloadGBHistoryFileView.as_view()),
8 path(r'contract/v1', views.SEContractView.as_view()), 10 path(r'contract/v1', views.SEContractView.as_view()),
9 ] 11 ]
......
...@@ -1131,3 +1131,27 @@ class DealerMapping(models.Model): ...@@ -1131,3 +1131,27 @@ class DealerMapping(models.Model):
1131 class Meta: 1131 class Meta:
1132 managed = False 1132 managed = False
1133 db_table = 'dealer_mapping' 1133 db_table = 'dealer_mapping'
1134
1135 class HILGreenBookHistoryFile(models.Model):
1136 id = models.AutoField(primary_key=True, verbose_name="id") # 主键
1137 application_id = models.CharField(max_length=64, verbose_name="申请id") # 索引
1138 download_finish = models.BooleanField(default=True, verbose_name="是否下载完成")
1139 update_time = models.DateTimeField(auto_now=True, verbose_name='修改时间')
1140 create_time = models.DateTimeField(auto_now_add=True, verbose_name='创建时间')
1141
1142 class Meta:
1143 managed = False
1144 db_table = 'hil_gb_history_file'
1145
1146
1147 class AFCGreenBookHistoryFile(models.Model):
1148 id = models.AutoField(primary_key=True, verbose_name="id") # 主键
1149 application_id = models.CharField(max_length=64, verbose_name="申请id") # 索引
1150 download_finish = models.BooleanField(default=True, verbose_name="是否下载完成")
1151 update_time = models.DateTimeField(auto_now=True, verbose_name='修改时间')
1152 create_time = models.DateTimeField(auto_now_add=True, verbose_name='创建时间')
1153
1154 class Meta:
1155 managed = False
1156 db_table = 'afc_gb_history_file'
1157 situ_db_label = 'afc'
......
...@@ -163,3 +163,20 @@ class ECM(GenericView): ...@@ -163,3 +163,20 @@ class ECM(GenericView):
163 response.status_code, response.headers, response.text)) 163 response.status_code, response.headers, response.text))
164 if 'ns12:createResponse' not in response.json().get('S:Envelope', {}).get('S:Body', {}): 164 if 'ns12:createResponse' not in response.json().get('S:Envelope', {}).get('S:Body', {}):
165 raise ECMException('ECM upload failed: {0} , with headers: {1}'.format(response.json(), response.headers)) 165 raise ECMException('ECM upload failed: {0} , with headers: {1}'.format(response.json(), response.headers))
166
167 def search_doc_info_list(self, filePath, business_type):
168 args = {
169 "username": self.username,
170 "password": self.pwd,
171 "docbase": self.doc_base_map.get(business_type),
172 "documentType": "green_book",
173 "dql":"select r_object_id, object_name,b_application_no, r_object_type,b_customer_name,r_content_size, owner_name, b_input_date, r_modify_date, b_location from green_book where b_location = '"+ filePath +"' order by r_modify_date desc"
174 }
175 header_info = self.get_headers()
176 self.running_log.info("{0} search header_info:{1}".format(self.log_base, header_info))
177 self.running_log.info("{0} search args_info:{1}".format(self.log_base, args))
178 response = requests.post(self.search_url, headers=header_info, json=args, verify=False)
179 if response.status_code != 200:
180 raise ECMException('ECM search failed with code: {0}'.format(response.status_code))
181 self.running_log.info("{0} search response.json():{1}".format(self.log_base, response.json()))
182 return response.json()
...\ No newline at end of file ...\ No newline at end of file
......
...@@ -53,7 +53,9 @@ from .models import ( ...@@ -53,7 +53,9 @@ from .models import (
53 AFCOCRResult, 53 AFCOCRResult,
54 AFCSEOCRResult, 54 AFCSEOCRResult,
55 HILCmsStatusInfo, 55 HILCmsStatusInfo,
56 AFCCmsStatusInfo 56 AFCCmsStatusInfo,
57 HILGreenBookHistoryFile,
58 AFCGreenBookHistoryFile
57 ) 59 )
58 from .named_enum import ErrorType, AutoResult, WholeResult, RPAResult, SystemName, RequestTeam 60 from .named_enum import ErrorType, AutoResult, WholeResult, RPAResult, SystemName, RequestTeam
59 from .mixins import DocHandler, MPOSHandler, PreSEHandler 61 from .mixins import DocHandler, MPOSHandler, PreSEHandler
...@@ -61,7 +63,7 @@ from . import consts ...@@ -61,7 +63,7 @@ from . import consts
61 from apps.account.authentication import OAuth2AuthenticationWithUser 63 from apps.account.authentication import OAuth2AuthenticationWithUser
62 from celery_compare.tasks import compare, fsm_compare 64 from celery_compare.tasks import compare, fsm_compare
63 from prese.compare import get_empty_result 65 from prese.compare import get_empty_result
64 66 from apps.doc.ocr.ecm import ECM
65 import time 67 import time
66 68
67 69
...@@ -1877,3 +1879,50 @@ class EmployeeView(GenericView): ...@@ -1877,3 +1879,50 @@ class EmployeeView(GenericView):
1877 if income_keywords is not None and len(income_keywords) > 0: 1879 if income_keywords is not None and len(income_keywords) > 0:
1878 return response.ok(data=True) 1880 return response.ok(data=True)
1879 return response.ok(data=False) 1881 return response.ok(data=False)
1882
1883 class SearchGBHistoryFileView(GenericView):
1884 permission_classes = [IsAuthenticated]
1885 authentication_classes = [OAuth2AuthenticationWithUser]
1886
1887 @use_args(employee_args, location='data')
1888 def post(self, request, args):
1889
1890 filePath = args.get('filePath')
1891 business_type = args.get('business_type')
1892
1893 gb_history_file_class = HILGreenBookHistoryFile if business_type in consts.HIL_SET else AFCGreenBookHistoryFile
1894 ecm = ECM()
1895 response_json = ecm.search_doc_info_list(filePath, business_type)
1896 data_objects = response_json['Envelope']['Body']['executeResponse']['return']['dataPackage']['DataObjects']
1897 for data_object in data_objects:
1898 object_id = data_object['Identity']['ObjectId']['@id']
1899 properties_dict = {}
1900 properties = data_object['Properties']['Properties']
1901 for prop in properties:
1902 name = prop['@name']
1903 value = prop.get('Value', 'null') # 如果Value为空,则输出null
1904 properties_dict[name] = value
1905 self.running_log.info('[SearchGBHistoryFileView] [properties_dict={0}] '.format(properties_dict))
1906 gb_history_file_class.objects.create(
1907 application_id=properties_dict['b_application_no'],
1908 download_finish=False
1909 )
1910 return response.ok(data=False)
1911
1912 class DownloadGBHistoryFileView(GenericView):
1913 permission_classes = [IsAuthenticated]
1914 authentication_classes = [OAuth2AuthenticationWithUser]
1915
1916 @use_args(employee_args, location='data')
1917 def post(self, request, args):
1918
1919 filePath = args.get('filePath')
1920 business_type = args.get('business_type')
1921 ecm = ECM()
1922 ecm.download(filePath, business_type)
1923 gb_history_file_class = HILGreenBookHistoryFile if business_type in consts.HIL_SET else AFCGreenBookHistoryFile
1924 gb_history_file_class.objects.create(
1925 application_id=gb_history_file_class.application_id,
1926 download_finish=False
1927 )
1928 return response.ok(data=False)
...\ No newline at end of file ...\ No newline at end of file
......
Styling with Markdown is supported
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!