From f5d5d724a2965359dca0d023252103c5adef3fa6 Mon Sep 17 00:00:00 2001 From: Administrator Date: Sat, 31 Jan 2026 16:44:09 +0800 Subject: [PATCH] =?UTF-8?q?1.=E5=BC=80=E7=A5=A8=E7=94=B3=E8=AF=B7=E6=90=9C?= =?UTF-8?q?=E7=B4=A2=E5=AD=97=E6=AE=B5=E5=A2=9E=E5=8A=A0=E4=B8=80=E4=B8=AA?= =?UTF-8?q?=E5=90=88=E5=90=8C=E7=BC=96=E5=8F=B7=202.=E6=A1=88=E4=BB=B6?= =?UTF-8?q?=E7=AE=A1=E7=90=86=E6=90=9C=E7=B4=A2=E5=AD=97=E6=AE=B5=E9=9C=80?= =?UTF-8?q?=E8=A6=81=EF=BC=8C=E9=A1=B9=E7=9B=AE=E7=B1=BB=E5=9E=8B=E3=80=81?= =?UTF-8?q?=E5=A7=94=E6=89=98=E4=BA=BA=E3=80=81=E7=9B=B8=E5=AF=B9=E6=96=B9?= =?UTF-8?q?=E3=80=81=E5=90=88=E5=90=8C=E7=BC=96=E5=8F=B7=E3=80=81=E6=A0=87?= =?UTF-8?q?=E7=AD=BE=203.=E6=A1=88=E4=BB=B6=E7=AE=A1=E7=90=86=E5=90=88?= =?UTF-8?q?=E5=90=8C=E8=BF=94=E8=BF=98=E4=BF=AE=E6=94=B9=E4=B8=BA=E5=A1=AB?= =?UTF-8?q?=E5=86=99=E6=97=B6=E9=97=B4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- business/views.py | 28 +++++++++++++++++++++++----- finance/views.py | 3 +++ 2 files changed, 26 insertions(+), 5 deletions(-) diff --git a/business/views.py b/business/views.py index 2cdb9c0..499052c 100644 --- a/business/views.py +++ b/business/views.py @@ -1564,6 +1564,7 @@ class CaseAttachmentUpdate(APIView): case_id = request.data.get('case_id') upload_type = request.data.get('type') files = request.FILES.getlist('file') or request.FILES.getlist('files') + Contractreturn = request.data.get('Contractreturn') approvers = request.data.get('approvers') personincharge = request.data.get('personincharge') approvers = normalize_approvers_param(approvers, personincharge) @@ -1572,7 +1573,7 @@ class CaseAttachmentUpdate(APIView): return Response({'status': 'error', 'message': '缺少参数case_id', 'code': 1}, status=status.HTTP_400_BAD_REQUEST) - allowed_types = ["Contractreturn", "Closingapplication"] + allowed_types = ["Contractreturn", "Closingapplication","AgencyContract"] if upload_type not in allowed_types: return Response({ 'status': 'error', @@ -1580,9 +1581,9 @@ class CaseAttachmentUpdate(APIView): 'code': 1 }, status=status.HTTP_400_BAD_REQUEST) - if not files: - return Response({'status': 'error', 'message': '请上传文件', 'code': 1}, - status=status.HTTP_400_BAD_REQUEST) + # if not files: + # return Response({'status': 'error', 'message': '请上传文件', 'code': 1}, + # status=status.HTTP_400_BAD_REQUEST) try: case = Case.objects.get(id=case_id, is_deleted=False) @@ -1594,11 +1595,14 @@ class CaseAttachmentUpdate(APIView): update_fields = [] if upload_type == "Contractreturn": - case.Contractreturn = json.dumps(file_urls, ensure_ascii=False) + case.Contractreturn = Contractreturn update_fields = ['Contractreturn'] elif upload_type == "Closingapplication": case.Closingapplication = json.dumps(file_urls, ensure_ascii=False) update_fields = ['Closingapplication'] + elif upload_type == "AgencyContract": + case.AgencyContract = json.dumps(file_urls, ensure_ascii=False) + update_fields = ['AgencyContract'] case.save(update_fields=update_fields) @@ -1682,6 +1686,10 @@ class caseManagementDetail(APIView): times = request.data.get('times') end_time = request.data.get('end_time') type = request.data.get('type') + serialnumber = request.data.get('serialnumber') + party_name = request.data.get('party_name') + client_name = request.data.get('client_name') + tags = request.data.get('tags') if not all([page, per_page]): return Response({'status': 'error', 'message': '缺少参数', 'code': 1}, status=status.HTTP_400_BAD_REQUEST) Q_obj = Q() @@ -1692,6 +1700,15 @@ class caseManagementDetail(APIView): por_id = ProjectRegistration.objects.filter(type=type, is_deleted=False).values_list('id', flat=True) Q_obj &= Q(project_id__in=por_id) + if serialnumber: + Q_obj &= Q(serialnumber__icontains=serialnumber) + if party_name: + Q_obj &= Q(party_name__icontains=party_name) + if client_name: + Q_obj &= Q(client_name__icontains=client_name) + if tags: + Q_obj &= Q(tags__contains=tags) + pre = Case.objects.filter(Q_obj, is_deleted=False).order_by('-id') total = len(pre) @@ -1872,6 +1889,7 @@ class caseManagementDetail(APIView): "project_id": info.project_id if info.project_id is not None else "", # 项目ID(没有数据时返回空字符串) "tags": tags_value, # 标签列表(没有数据时返回空字符串) "tag_ids": tag_ids_value, # 标签ID列表(没有数据时返回空字符串) + "AgencyContract":info.AgencyContract }) return Response({'message': '展示成功', "total": total, 'data': data, 'code': 0}, status=status.HTTP_200_OK) diff --git a/finance/views.py b/finance/views.py index d394f90..778674c 100644 --- a/finance/views.py +++ b/finance/views.py @@ -819,6 +819,7 @@ class issueAnInvoiceDetail(APIView): times = request.data.get('times') end_time = request.data.get('end_time') unit = request.data.get('unit') + ContractNo = request.data.get('ContractNo') if not all([page, per_page]): return Response({'status': 'error', 'message': '缺少参数', 'code': 1}, status=status.HTTP_400_BAD_REQUEST) Q_obj = Q() @@ -826,6 +827,8 @@ class issueAnInvoiceDetail(APIView): Q_obj &= Q(times__gte=times) & Q(times__lte=end_time) if unit: Q_obj &= Q(unit__icontains=unit) + if ContractNo: + Q_obj &= Q(ContractNo__icontains=ContractNo) invos = Invoice.objects.filter(Q_obj, is_deleted=False).order_by('-id') total = len(invos)