diff --git a/finance/views.py b/finance/views.py index 391835a..cdb9a44 100644 --- a/finance/views.py +++ b/finance/views.py @@ -769,8 +769,31 @@ class issueAnInvoiceDetail(APIView): user_agents_page = paginator.page(1) except EmptyPage: user_agents_page = paginator.page(paginator.num_pages) + + # 导入案件模型,用于查找案件id + from business.models import Case, ProjectRegistration + data = [] for info in user_agents_page.object_list: + # 通过ContractNo查找对应的案件id + case_id = None + project_id = None + + # 优先从Case(案件管理)中查找 + try: + case = Case.objects.get(contract_no=info.ContractNo, is_deleted=False) + case_id = case.id + # 如果Case有关联的ProjectRegistration,也返回project_id + if case.project: + project_id = case.project.id + except Case.DoesNotExist: + # 如果Case中找不到,尝试从ProjectRegistration(立项登记)中查找 + try: + project = ProjectRegistration.objects.get(ContractNo=info.ContractNo, is_deleted=False) + project_id = project.id + except ProjectRegistration.DoesNotExist: + pass # 如果都找不到,case_id和project_id保持为None + itme = { 'id': info.id, "ContractNo": info.ContractNo, @@ -784,6 +807,8 @@ class issueAnInvoiceDetail(APIView): "state": info.state, "username": info.username, "times": info.times, + "case_id": case_id, # 案件管理ID(Case表) + "project_id": project_id, # 立项登记ID(ProjectRegistration表) } data.append(itme) return Response({'message': '展示成功', "total": total, 'data': data, 'code': 0}, status=status.HTTP_200_OK)