fwerfgerf

This commit is contained in:
27942
2026-01-31 10:39:51 +08:00
parent 9740b5eb9d
commit 9392215c10
2 changed files with 49 additions and 0 deletions

View File

@@ -609,6 +609,49 @@ def get_approvers_from_record(business_record, approval=None):
return []
def ensure_case_for_approved_project(project, approval=None):
"""
立项审批通过后,若该立项尚未在案件管理中有对应案件,则自动创建一条案件记录。
立案时间使用审批通过时间approval.completeTiem案件会出现在案件管理列表中。
Args:
project: ProjectRegistration 实例,且 state 已为「已通过」
approval: 可选,立项登记的 Approval 记录,用于取 completeTiem不传则按 user_id 查询
"""
from business.models import Case, ProjectRegistration
from .models import Approval as ApprovalModel
if not project or getattr(project, 'state', None) != "已通过":
return
if Case.objects.filter(project_id=project.id, is_deleted=False).exists():
return
if approval is None:
approval = ApprovalModel.objects.filter(
type='立项登记', user_id=str(project.id), state='已通过', is_deleted=False
).order_by('-id').first()
if approval and getattr(approval, 'completeTiem', None):
filing_time = approval.completeTiem.strftime('%Y-%m-%d')
else:
filing_time = date.today().strftime('%Y-%m-%d')
Case.objects.create(
project_id=project.id,
contract_no=getattr(project, 'ContractNo', None) or '',
project_type=getattr(project, 'type', None) or '',
client_name=getattr(project, 'client_info', None) or '',
party_name=getattr(project, 'party_info', None) or '',
project_description=getattr(project, 'description', None) or '',
responsiblefor=getattr(project, 'responsiblefor', None) or '',
charge=getattr(project, 'charge', None) or '',
times=filing_time,
AgencyContract='[]',
Contractreturn='[]',
Closingapplication='[]',
ChangeRequest='',
state='已通过',
invoice_status='0',
paymentcollection='0',
)
def process_approval_flow(approval, business_record, current_approver, state,
approval_type, final_state_map=None, rejection_reason=None):
"""
@@ -667,6 +710,9 @@ def process_approval_flow(approval, business_record, current_approver, state,
if business_record and hasattr(business_record, 'state'):
business_record.state = final_state_map.get("已通过", "已通过")
business_record.save(update_fields=['state'])
# 立项审批通过后,自动在案件管理中创建案件(立案时间=审批通过时间)
if approval_type == "立项登记" and business_record:
ensure_case_for_approved_project(business_record, approval=approval)
return True, None
if state == "未通过":
approval.state = "未通过"

View File

@@ -2894,6 +2894,9 @@ class ApprovalStatusCheck(APIView):
project.save(update_fields=['state'])
business_state = "已通过"
is_approved = True
# 立项审批通过后,自动在案件管理中创建案件
from User.utils import ensure_case_for_approved_project
ensure_case_for_approved_project(project, approval=approval)
except ProjectRegistration.DoesNotExist:
pass
elif type == "待办":