修复创建案件
This commit is contained in:
@@ -8,7 +8,7 @@ from .models import User, Approval, Department, OperationLog
|
||||
from business.models import permission
|
||||
from finance.models import Income, Accounts, Payment, Reimbursement, BonusChange
|
||||
from finance.models import Invoice
|
||||
from business.models import ProjectRegistration, Case, SealApplication, PreFiling
|
||||
from business.models import ProjectRegistration, Case, SealApplication, PreFiling, Bid
|
||||
import datetime
|
||||
from utility.utility import flies
|
||||
from django.contrib.sessions.backends.db import SessionStore
|
||||
@@ -678,16 +678,36 @@ class roxyExhibition(APIView):
|
||||
|
||||
approvals = Approval.objects.filter(query, is_deleted=False).order_by('-id')
|
||||
|
||||
# 过滤掉关联的案件已被删除的审批记录
|
||||
# 过滤掉关联的业务记录已被删除的审批记录
|
||||
# 获取所有已删除的案件ID(转为字符串,因为Approval.user_id是CharField)
|
||||
deleted_case_ids = Case.objects.filter(is_deleted=True).values_list('id', flat=True)
|
||||
deleted_case_ids_str = [str(cid) for cid in deleted_case_ids]
|
||||
|
||||
# 获取所有已删除的投标登记ID
|
||||
deleted_bid_ids = Bid.objects.filter(is_deleted=True).values_list('id', flat=True)
|
||||
deleted_bid_ids_str = [str(bid) for bid in deleted_bid_ids]
|
||||
|
||||
# 获取所有已删除的立项登记ID
|
||||
deleted_project_ids = ProjectRegistration.objects.filter(is_deleted=True).values_list('id', flat=True)
|
||||
deleted_project_ids_str = [str(pid) for pid in deleted_project_ids]
|
||||
|
||||
# 排除关联的业务记录已被删除的审批记录
|
||||
exclude_conditions = Q()
|
||||
|
||||
# 排除 type="案件管理" 且关联的案件已被删除的审批记录
|
||||
if deleted_case_ids_str:
|
||||
approvals = approvals.exclude(
|
||||
Q(type="案件管理") & Q(user_id__in=deleted_case_ids_str)
|
||||
)
|
||||
exclude_conditions |= Q(type="案件管理") & Q(user_id__in=deleted_case_ids_str)
|
||||
|
||||
# 排除 type="投标登记" 且关联的投标登记已被删除的审批记录
|
||||
if deleted_bid_ids_str:
|
||||
exclude_conditions |= Q(type="投标登记") & Q(user_id__in=deleted_bid_ids_str)
|
||||
|
||||
# 排除 type="立项登记" 且关联的立项登记已被删除的审批记录
|
||||
if deleted_project_ids_str:
|
||||
exclude_conditions |= Q(type="立项登记") & Q(user_id__in=deleted_project_ids_str)
|
||||
|
||||
if exclude_conditions:
|
||||
approvals = approvals.exclude(exclude_conditions)
|
||||
|
||||
# 调试信息(生产环境可以注释掉)
|
||||
# print(f"用户: {user.username}, 部门IDs: {user_department_ids_str}")
|
||||
@@ -894,6 +914,20 @@ class approvalProcessing(APIView):
|
||||
approval.save(update_fields=['state'])
|
||||
user.save(update_fields=['state'])
|
||||
|
||||
if type == "投标登记":
|
||||
try:
|
||||
user = Bid.objects.get(id=approval.user_id, is_deleted=False)
|
||||
except Bid.DoesNotExist:
|
||||
return Response({'status': 'error', 'message': '投标登记记录不存在或已被删除', 'code': 1}, status=status.HTTP_404_NOT_FOUND)
|
||||
if state == "已通过":
|
||||
approval.state = "已通过"
|
||||
user.state = "已通过"
|
||||
else:
|
||||
approval.state = "未通过"
|
||||
user.state = "未通过"
|
||||
approval.save(update_fields=['state'])
|
||||
user.save(update_fields=['state'])
|
||||
|
||||
if type == "案件管理":
|
||||
try:
|
||||
approval = Approval.objects.get(id=id, is_deleted=False)
|
||||
|
||||
Reference in New Issue
Block a user