投标待办加入提交人

This commit is contained in:
ddrwode
2026-01-30 16:48:34 +08:00
parent 8442163a24
commit 3c00ec0a5d
2 changed files with 25 additions and 7 deletions

View File

@@ -656,7 +656,8 @@ def process_approval_flow(approval, business_record, current_approver, state,
# 申请人待查看阶段:当前步骤是申请人待查看,申请人查看后完成(投标/立项不再给财务部)
applicant = getattr(approval, 'applicant', None)
if approval.state == "待查看" and applicant and approval.personincharge == applicant:
if state == "已通过" or not state:
# 已通过、已查看、未传 state 均视为申请人已查看完成
if state == "已通过" or state == "已查看" or (state is None or state == ""):
approval.state = "已通过"
if "已通过" not in approval.content:
approval.content = (approval.content or "") + ",申请人已查看"

View File

@@ -1122,6 +1122,21 @@ class roxyExhibition(APIView):
user_agents_page = paginator.page(paginator.num_pages)
data = []
for info in user_agents_page.object_list:
# 申请人拉取待办列表时,若该条为「待查看」且当前用户是申请人,则视为已查看并更新为已通过(查看即更新状态)
if info.type in ("投标登记", "立项登记") and info.state == "待查看" and getattr(info, 'applicant', None) == user.username and info.personincharge == user.username:
try:
info.state = "已通过"
if "申请人已查看" not in (info.content or ""):
info.content = (info.content or "") + ",申请人已查看"
info.save(update_fields=['state', 'content'])
bid_or_project_id = info.user_id
if info.type == "投标登记":
Bid.objects.filter(id=bid_or_project_id, is_deleted=False).update(state="已通过")
else:
ProjectRegistration.objects.filter(id=bid_or_project_id, is_deleted=False).update(state="已通过")
except (ValueError, TypeError, AttributeError):
pass
title = info.title
content = info.content
@@ -1985,9 +2000,10 @@ class approvalProcessing(APIView):
except ProjectRegistration.DoesNotExist:
return Response({'status': 'error', 'message': '立项登记记录不存在或已被删除', 'code': 1}, status=status.HTTP_404_NOT_FOUND)
# 申请人待查看阶段:只传 type 和 id 不传 state 时,视为申请人查看完成(默认已通过)
if approval.state == "待查看" and getattr(approval, 'applicant', None) and approval.personincharge == approval.applicant and not state:
state = "已通过"
# 申请人待查看阶段:只传 type/id、或 state=已通过/已查看 时,视为申请人查看完成(更新为已通过)
if approval.state == "待查看" and getattr(approval, 'applicant', None) and approval.personincharge == approval.applicant:
if state in (None, "", "已通过", "已查看"):
state = "已通过"
# 使用统一的审核流程处理函数
from User.utils import process_approval_flow
@@ -2013,9 +2029,10 @@ class approvalProcessing(APIView):
except Bid.DoesNotExist:
return Response({'status': 'error', 'message': '投标登记记录不存在或已被删除', 'code': 1}, status=status.HTTP_404_NOT_FOUND)
# 申请人待查看阶段:只传 type 和 id 不传 state 时,视为申请人查看完成(默认已通过)
if approval.state == "待查看" and getattr(approval, 'applicant', None) and approval.personincharge == approval.applicant and not state:
state = "已通过"
# 申请人待查看阶段:只传 type/id、或 state=已通过/已查看 时,视为申请人查看完成(更新为已通过)
if approval.state == "待查看" and getattr(approval, 'applicant', None) and approval.personincharge == approval.applicant:
if state in (None, "", "已通过", "已查看"):
state = "已通过"
# 使用统一的审核流程处理函数
from User.utils import process_approval_flow