add requests file update
This commit is contained in:
parent
93aee28494
commit
be7184cc7d
@ -12,7 +12,7 @@ from drf_spectacular.utils import extend_schema, OpenApiParameter, OpenApiTypes
|
|||||||
# from drf_spectacular.types import OpenApiString
|
# from drf_spectacular.types import OpenApiString
|
||||||
import json
|
import json
|
||||||
from ..exception.exceptions import InvalidException, RequiredFieldException, NotFoundException
|
from ..exception.exceptions import InvalidException, RequiredFieldException, NotFoundException
|
||||||
from ..models import SubscriptionRequest, Report, ReportFile
|
from ..models import SubscriptionRequest, Report, ReportFile, SubscriptionRequestFile
|
||||||
from ..utils.accuracy import shadow_report, MonthReportAccumulate, first_of_list, extract_report_detail_list, IterAvg
|
from ..utils.accuracy import shadow_report, MonthReportAccumulate, first_of_list, extract_report_detail_list, IterAvg
|
||||||
from ..utils.file import download_from_S3
|
from ..utils.file import download_from_S3
|
||||||
from ..utils.process import string_to_boolean
|
from ..utils.process import string_to_boolean
|
||||||
@ -647,6 +647,18 @@ class RequestViewSet(viewsets.ViewSet):
|
|||||||
|
|
||||||
subscription_request = subscription_request.first()
|
subscription_request = subscription_request.first()
|
||||||
|
|
||||||
|
file_query = Q(request=request_id)
|
||||||
|
|
||||||
|
subscription_request_files = SubscriptionRequestFile.objects.filter(file_query)
|
||||||
|
|
||||||
|
for subscription_request_file in subscription_request_files:
|
||||||
|
if subscription_request_file.doc_type == 'invoice':
|
||||||
|
subscription_request_file.reviewed_result = reviewed_result
|
||||||
|
subscription_request_file.reviewed_result['imei_number'] = []
|
||||||
|
elif subscription_request_file.doc_type == 'imei':
|
||||||
|
subscription_request_file.reviewed_result = {"retailername": None, "sold_to_party": None, "purchase_date": [], "imei_number": [reviewed_result["imei_number"][subscription_request_file.index_in_request]]}
|
||||||
|
subscription_request_file.save()
|
||||||
|
|
||||||
reviewed_result = json.loads(data["reviewed_result"])
|
reviewed_result = json.loads(data["reviewed_result"])
|
||||||
for field in ['retailername', 'sold_to_party', 'purchase_date', 'imei_number']:
|
for field in ['retailername', 'sold_to_party', 'purchase_date', 'imei_number']:
|
||||||
if not field in reviewed_result.keys():
|
if not field in reviewed_result.keys():
|
||||||
|
75
cope2n-api/fwd_api/management/commands/migrate-csv.py
Normal file
75
cope2n-api/fwd_api/management/commands/migrate-csv.py
Normal file
@ -0,0 +1,75 @@
|
|||||||
|
# myapp/management/commands/mycustomcommand.py
|
||||||
|
from django.core.management.base import BaseCommand
|
||||||
|
from tqdm import tqdm
|
||||||
|
from fwd_api.models import SubscriptionRequestFile, SubscriptionRequest
|
||||||
|
from fwd_api.utils.accuracy import predict_result_to_ready
|
||||||
|
import traceback
|
||||||
|
import copy
|
||||||
|
import csv
|
||||||
|
|
||||||
|
class Command(BaseCommand):
|
||||||
|
help = 'Refactor database for image level'
|
||||||
|
|
||||||
|
def add_arguments(self, parser):
|
||||||
|
# Add your command-line arguments here
|
||||||
|
parser.add_argument('test', type=str, help='Value for the argument')
|
||||||
|
|
||||||
|
def process_request(self, request, predict_result, user_feedback, reviewed_result, row):
|
||||||
|
with open('countries.csv', 'w', encoding='UTF8') as of:
|
||||||
|
writer = csv.writer(of)
|
||||||
|
writer.writerow(['requestId','redemptionNumber','userSubmitResults','OCRResults','revisedResults_by_SDSRV','accuracy','processingTime','processingTime (by request)'])
|
||||||
|
if len(request.request_id.split(".")[0].split("_")) < 2:
|
||||||
|
return
|
||||||
|
images = SubscriptionRequestFile.objects.filter(request=request)
|
||||||
|
for i, image in enumerate(images):
|
||||||
|
try:
|
||||||
|
if not request.predict_result:
|
||||||
|
raise KeyError(f"Key predict_result not found in {request.request_id}")
|
||||||
|
if request.predict_result.get("status", 200) != 200:
|
||||||
|
raise AttributeError(f"Failed request: {request.request_id}")
|
||||||
|
|
||||||
|
for field in ['retailername', 'purchase_date', 'imei_number']:
|
||||||
|
if image.feedback_result[field] == user_feedback:
|
||||||
|
print(image.feedback_result)
|
||||||
|
# _predict_result = copy.deepcopy(predict_result_to_ready(request.predict_result))
|
||||||
|
# _feedback_result = copy.deepcopy(request.feedback_result)
|
||||||
|
# _reviewed_result = copy.deepcopy(request.reviewed_result)
|
||||||
|
|
||||||
|
# if image.doc_type == "invoice":
|
||||||
|
# _predict_result[field] = predict_result
|
||||||
|
# _predict_result["imei_number"] = []
|
||||||
|
# if _feedback_result:
|
||||||
|
# _feedback_result[field] = user_feedback
|
||||||
|
# _feedback_result["imei_number"] = []
|
||||||
|
# else:
|
||||||
|
# None
|
||||||
|
# if _reviewed_result:
|
||||||
|
# _reviewed_result[field] = reviewed_result
|
||||||
|
# _reviewed_result["imei_number"] = []
|
||||||
|
# else:
|
||||||
|
# None
|
||||||
|
# else:
|
||||||
|
# _predict_result = {"retailername": None, "sold_to_party": None, "purchase_date": [], "imei_number": [predict_result]}
|
||||||
|
# _feedback_result = {"retailername": None, "sold_to_party": None, "purchase_date": None, "imei_number": [user_feedback]} if _feedback_result else None
|
||||||
|
# _reviewed_result = {"retailername": None, "sold_to_party": None, "purchase_date": None, "imei_number": [reviewed_result]} if _reviewed_result else None
|
||||||
|
# image.predict_result = _predict_result
|
||||||
|
# image.feedback_result = _feedback_result
|
||||||
|
# image.reviewed_result = _reviewed_result
|
||||||
|
# image.save()
|
||||||
|
else:
|
||||||
|
writer.writerow(row)
|
||||||
|
|
||||||
|
except Exception as e:
|
||||||
|
self.stdout.write(self.style.ERROR(f"Request: {request.request_id} failed with {e}"))
|
||||||
|
print(traceback.format_exc())
|
||||||
|
continue
|
||||||
|
|
||||||
|
def handle(self, *args, **options):
|
||||||
|
test = options['test']
|
||||||
|
#open csv file
|
||||||
|
with open(test, 'r') as csvfile:
|
||||||
|
reader = csv.reader(csvfile)
|
||||||
|
for row in reader:
|
||||||
|
self.process_request(SubscriptionRequest.objects.filter(request_id=row[0]), row[3], row[2], row[4], row)
|
||||||
|
|
||||||
|
self.stdout.write(self.style.SUCCESS('Sample Django management command executed successfully!'))
|
Loading…
Reference in New Issue
Block a user